繁体   English   中英

使用 onsubmit 属性时 request.files 返回 null

[英]request.files returns null when using onsubmit attribute

Request.files在将 onsubmit 属性添加到BeginForm后返回 null 并在删除时正常工作。 我试过 id 属性同样的问题。 我也尝试从控制器中的集合中添加

看法

@using (Html.BeginForm("Create", "Candidate", FormMethod.Post, new { onsubmit = "return SubmitForm(this)",  enctype = "multipart /form-data" }))

{
    <div class="form-horizontal">
       ....
        <div class="form-group">
            @Html.Label("Avatar", new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                <input type="file" name="file" multiple="multiple" />
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}
   
 function SubmitForm(form) {
            $.validator.unobtrusive.parse(form);
            if($(form).valid()){
                $.ajax({
                    type : "POST",
                    url : form.action,
                    data : $(form).serialize(),
                    success : function (data) {
                        if(data.success)
                        {
                            Popup.dialog('close');
                            dataTable.ajax.reload();

                            $.notify(data.message,{
                                globalPosition :"top center",
                                className : "success"
                            })

                        }
                    }
                });
            }
            return false;
        }



actionResult Create(model model)
{
}

尝试这个:

var form = $('form')[0];
var formData = new FormData(form);

    function SubmitForm(form) {
                $.validator.unobtrusive.parse(form);
                if($(form).valid()){
                    $.ajax({
                        type : "POST",
                        url : "your url",
                        data : formData ,
                        contentType: false,
                        processData: false,
                        success : function (data) {
                            if(data.success)
                            {
                                Popup.dialog('close');
                                dataTable.ajax.reload();
    
                                $.notify(data.message,{
                                    globalPosition :"top center",
                                    className : "success"
                                })
    
                            }
                        }
                    });
                }
                return false;
            }

同样在您的控制器函数中,您需要添加 HttpPostedFileBase 参数:

actionResult Create(HttpPostedFileBase Uploadedfile)
{
//Do stuff here
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM