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

Pet*_*ete 30 html asp.net-mvc html.beginform razor

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

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

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

有没有人知道我是如何做到这一点的,因为我尝试了以下的多种变体,但无法让它工作:

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

Jan*_*Jan 63

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

new { enctype = "multipart/form-data", data_ajax = "false" }
Run Code Online (Sandbox Code Playgroud)

连字符不允许作为ac#标识符的一部分.MVC框架自动转换下划线.

  • 啊,这正是我追求的,谢谢. (5认同)

YD1*_*D1m 16

您可以使用另一个重载:

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