如何将数据属性添加到Html.BeginForm

时间:2013-07-23 13:30:40

标签: html asp.net-mvc razor html.beginform

我使用以下内容创建表单以在移动网站上传图像。

@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data" }))

然而,由于它使用的是jQuery mobile,我启用了Ajax,因此页面之间的转换非常顺畅。这导致了我的表单无法上传图像的问题,因为您无法使用ajax进行文件上传。我需要将属性data-ajax="false"添加到此表单中,以便允许我上传文件。

有没有人知道我是如何做到这一点的,因为我尝试了以下多种变体,但却无法使其发挥作用:

@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data", "data-ajax" = "false" }))

2 个答案:

答案 0 :(得分:61)

诀窍是使用下划线而不是连字符:

new { enctype = "multipart/form-data", data_ajax = "false" }

连字符不允许作为c#标识符的一部分。 MVC框架自动翻译下划线。

答案 1 :(得分:16)

您可以使用其他重载:

@using (Html.BeginForm("Form", "Quote", FormMethod.Post, new Dictionary<string, object> { { "enctype", "multipart/form-data" }, { "data-ajax", "false"} }))