Asp.net mvc MVC上载对象引用未设置为对象的实例

Asp.net mvc MVC上载对象引用未设置为对象的实例,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,以下是cshtml页面的代码: @using (Ajax.BeginForm("QuotePost", "Quote", null, new AjaxOptions() { UpdateTargetId = "response", OnSuccess = "OnSuccessLogin", OnFailure = "onFailLogin", HttpMethod = "Post" }, new { id = "frmQuote", enctype = "mult

以下是cshtml页面的代码:

@using (Ajax.BeginForm("QuotePost", "Quote", null, new AjaxOptions()
{
    UpdateTargetId = "response",
    OnSuccess = "OnSuccessLogin",
    OnFailure = "onFailLogin",
    HttpMethod = "Post"
}, new { id = "frmQuote", enctype = "multipart/form-data" }))
{
    <div class="col-xs-3">
        <input name="files" type="file" id="fileupload1" />
    </div>
    <div class="col-xs-3">
        <input type="submit" id="Upload1" value="Upload" class="btn btn-default" />
    </div>
}
在myJS中

$(document).on('click', '#Upload1', function (e) {
    $('#frmQuote').submit();

    $.ajax({
        url: "Quote/UploadQuoteByIMEI",
        type: "POST",
        dataType: "json",
        success: function (data) {
        }
    });
});
注意:在我的控制器中,我已将null返回到json中,但我关心的是作为HttpPostedFileBase的PostedFile传入的参数是null

请帮我做这个


我所关注的链接

阅读一下,可能会有所帮助。@JasonEvans已经关注了它,似乎不起作用。.您的输入名称是
文件
,因此您的参数名称应该与
HttpPostedFileBase文件
匹配。你的剧本毫无意义。“提交”按钮提交表单(您不会使用
.preventDefault()
取消该按钮),但您可以调用
.submit()
再次提交表单,并添加一些ajax以第三次提交表单@StephenMuecke我听从了你的建议,将按钮类型从
submit
更改为
按钮
。而且,使用了
HttpPostedFileBase文件
,但仍然不起作用,请您进一步指导我。我不确定我是否理解您在这里做什么。表单操作是
QuotePost
,但您的方法是
uploadquoteByMei
?如果您使用(Ajax.BeginForm(“uploadquotebyeimei”…并保留
submit
,那么您根本不需要脚本。
$(document).on('click', '#Upload1', function (e) {
    $('#frmQuote').submit();

    $.ajax({
        url: "Quote/UploadQuoteByIMEI",
        type: "POST",
        dataType: "json",
        success: function (data) {
        }
    });
});