iam just using an AJAX Form to submit a Textbox with a data and File in MVC5. here is Ajax form
<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()" />
}
i have used already used
<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>
in layout .cshtml and have config changes
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" /
Yet Request.FIles in SubmitFiles actionmethod its count is zero.
In jquery i can get files and in fiddler
don't know why files count is zero in action method and why my BeginRequest and onfail methods are firing in any scenario after form is submited. I am submitting using $('#form2").submit()