在mvc控制器中获取HttpPostedFileBase的空值

时间:2015-07-29 09:59:28

标签: asp.net-mvc file-upload

我想让用户选择更改他们的个人资料图片。点击保存按钮我的控制器操作被点击但我得到了HttpPostedFileBase的空值。我是第一次在mvc上传文件所以无法弄清楚我在哪里我做错了,因此在控制器中获得空值。

控制器

  [AuthenticationRequired]
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult ChangeProfilePicture(HttpPostedFileBase imageData)
    {
    }

视图

    @using (Ajax.BeginForm("ChangeProfilePicture", "Account", new { enctype = "multipart/form-data" },new AjaxOptions { OnSuccess = "OnSuccess" }))
    {
        @Html.AntiForgeryToken()

        <div class="modal-body" id="tilesDescription">
            <div class="row">
                <div class="col-md-12">
                    <div class="text-center">
                        <div class="fileUpload btn btn-primary">
                            <span>Select a photo from your computer</span>
                            <input id="uploadBtn" type="file" class="upload" name="imageData" accept="image/*" />
                        </div>
                        <div class="text-center">
                            <img id="imgprvw" alt="uploaded image preview" class="imgPreview hide" />
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="modal-footer">
            <button type="button" class="btn btn-rounded btn-sm btn-tiles" data-dismiss="modal">Cancel</button>
            <button type="submit" class="btn btn-rounded btn-sm btn-tiles disabled" id="btnProfilePic">Set as profile picture</button>
        </div>
    }

1 个答案:

答案 0 :(得分:0)

您无法使用类似的jj发布文件,因为不支持。

根据我的经验,使用Ajax(如果使用jquery)发布文件的最简单方法是使用:

http://malsup.com/jquery/form/