【问题标题】:request.files returns null when using onsubmit attribute使用 onsubmit 属性时 request.files 返回 null
【发布时间】:2021-03-02 22:58:35
【问题描述】:

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)
{
}

【问题讨论】:

标签: c# jquery asp.net-mvc model-view-controller asp.net-mvc-5


【解决方案1】:

试试这个:

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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多