使用Ajax.BeginForm iso Html.BeginForm的空参数
获取了处理文件上载的控制器方法:使用Ajax.BeginForm iso Html.BeginForm的空参数,ajax,asp.net-mvc,asp.net-mvc-4,Ajax,Asp.net Mvc,Asp.net Mvc 4,获取了处理文件上载的控制器方法: AcceptVerbs(HttpVerbs.Post)] public ActionResult FileUpload(int id, HttpPostedFileBase uploadFile) { if (uploadFile != null && uploadFile.ContentLength > 0 && ...) ... } 当我使用Html.begin时,一切正常。将Html.BeginFor
AcceptVerbs(HttpVerbs.Post)]
public ActionResult FileUpload(int id, HttpPostedFileBase uploadFile)
{
if (uploadFile != null && uploadFile.ContentLength > 0 && ...)
...
}
当我使用Html.begin时,一切正常。将Html.BeginForm替换为Ajax.BeginForm会导致上述方法的uploadFile de第二个参数的值为空:
<div id="ajaxDocumentUpload">
@{ using (Ajax.BeginForm("FileUpload", "ProjectDocument", FormMethod.Post,
new AjaxOptions { OnSuccess = "UploadSuccess" },
new { enctype = "multipart/form-data" }))
{
<div>
<input type=file accept="image/gif, image/jpeg" name="uploadFile">
</div>
<div>
<input type="hidden" name="id" id="id" value="@Model.ProjectId"/>
</div>
<input id=btnUpdateAttachment type=submit value="Upload">
}
}
</div>
你知道怎么了吗?提前感谢您的帮助 您向Ajax.BeginForm传递了不兼容的参数。改用这个:
@using(Ajax.BeginForm("FileUpload", "ProjectDocument", null,
new AjaxOptions { OnSuccess = "UploadSuccess" },
new { enctype = "multipart/form-data" })
不幸的是,将FormMethod.Post替换为null没有任何积极的效果。参数uploadFile仍然为null,id仍然正常。