Asp.net mvc 带有文件上传的MVC Ajax表单

Asp.net mvc 带有文件上传的MVC Ajax表单,asp.net-mvc,file-upload,Asp.net Mvc,File Upload,我只是使用AJAX表单提交一个文本框,其中包含MVC5中的数据和文件。 这是Ajax表单 <script> function BeginRequest() { alert('begining'); } function submitform() { var fileinput = $('#file2')[0].files; if (fileinput.length <= 0) alert("no file to upload");

我只是使用AJAX表单提交一个文本框,其中包含MVC5中的数据和文件。 这是Ajax表单

 <script>
function BeginRequest() {
    alert('begining');
}
function submitform() {

    var fileinput = $('#file2')[0].files;
    if (fileinput.length <= 0)
        alert("no file to upload");
    var fromdata = new FormData();
    fromdata.append('a', fileinput[0]);
    debugger;
    $('#Form2').submit();


}
function OnFail() {
    alert('faiil');
}

 </script>

  <div id="divresponse">

   </div>

   @using (Ajax.BeginForm("SubmitFiles", "Home", null,
       new AjaxOptions()
       {
           UpdateTargetId = "divresponse",
           InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace,
           HttpMethod = "POST",
           OnBegin = "BeginRequest",
           OnFailure = "OnFail()"
       }, new { id = "Form2", enctype = "application/x-www-form-urlencoded"        }))
{
 <input type="file" id="file2" name="file2" />

<input type="text" id="txtName" name="txtName" value="aaa" />
<input type="button" value="Add" onclick="submitform()" />

}

函数BeginRequest(){
警惕(“开始”);
}
函数submitform(){
var fileinput=$('#file2')[0]。文件;

如果(fileinput.length)您不能使用
Ajax.BeginForm()
上载文件。您需要使用
FormData
和一组特定的Ajax选项,这些选项
Ajax.BeginForm()
没有设置。请参阅如何操作。您不能使用
Ajax.BeginForm()
上载文件。您需要将
FormData
与一组特定的ajax选项一起使用,
ajax.BeginForm()
未设置。有关如何操作,请参阅。
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
 <add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" /