我想在ASP.NET MVC中使用AJAX上传照片,但该文件将用于控制器null



我想在ASP.NET MVC中使用Ajax上传配置文件照片,但我无法弄清楚为什么上传参数将null无效。

html代码;

                <div class="preview">
                <div class="thumb-info mb-md">
                    <div id="preview">
                        <img src="" id="thumb" class="rounded img-responsive" alt="Profil Fotoğrafı" style="display: none;">
                    </div>
                </div>
                <div class="thumb-info-title">
                    <span class="thumb-info-inner">@ViewBag.CurrentUser</span>
                    <span class="thumb-info-type">CEO</span>
                </div>
            </div>
            <form id="newHotnessForm" method="post" action="" enctype="multipart/form-data">
                <div>
                    <input id="imgFile" type="file" name="file" />
                    <button id="btnUpload" type="button" class="btn btn-primary btn-xs">Save</button>
                </div>
            </form>

jQuery代码;

           <script> 
        $(document).ready(function () {
        $("#btnUpload").click(function () {
            var formData = new FormData();
            formData.append('file', $('#imgFile')[0].files[0]);
            $.ajax({
                url: "@Url.Action("UploadPhoto", "Manage")",
                method: "POST",
                data: formData,
                contentType: false,
                processData: false,
                success: function (response) {
                    if (response != 0) {
                        $("#thumb").attr("src", response);
                        $("#thumb").show();
                    } else {
                        alert("File could not upload.");
                    }
                },
            });
        });
    });
    </script>

动作的开始

        [HttpPost]
    public ActionResult UploadPhoto(HttpPostedFileBase upload)
    {
       // after save path
          return Json(new {success = path});
    }

谢谢您的帮助

FormData中的操作参数名称和键必须匹配

[HttpPost]
public ActionResult UploadPhoto(HttpPostedFileBase upload)
//should be 'upload' as well
var formData = new FormData();
formData.append('upload', $('#imgFile')[0].files[0]);

最新更新