如何使用asp.net MVC发送隐藏的ID值FormData?

时间:2018-02-14 11:07:09

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我需要将隐藏ID值var genericID = $("#hdnGenericID").val();传递给FromData.But我无法传递Id值。

如何将hdnGenericID ID值传递给控制器​​。

@Html.HiddenFor(model => item.GenericID, new { id = "hdnGenericID" })

cs.Html

<div class="uploading-container">
        <div class="uploading-container-left">
          <span class="btn btn-rounded btn-file">
            <span>Choose file</span>
               <input type="file" name="file" id="file">
               </span>
          </div><!--.uploading-container-left-->
<div class="uploading-container-right">
    <div class="uploading-container-right-in">
       <div class="col-lg-4">
         <fieldset class="form-group">
            <label class="form-label semibold">Perview_Image</label>&nbsp;&nbsp;
             <img id="image_upload_preview" src="http://placehold.it/100x100" alt="your image" />
             <a id="remove" onclick="javascript:ClearFileUploadControl();" style="display: none; cursor: pointer;">Remove</a>
            </fieldset>
           </div>
          <input type="submit" id="btnImageUpload" name="ImageUpload" value="Upload image" class="btn btn-rounded btn-inline btn-success" />
             </div>
            </div>
           </div>

图片上传:

$(function () {
            $('#btnImageUpload').click(function () {
                var data = new FormData();
                var genericID = $("#hdnGenericID").val();
                var files = $("#file").get(0).files;

                if (files.length > 0) { data.append("HelpSectionImages", files[0]); }
                else {
                    common.showNotification('warning', 'Please select file to upload.', 'top', 'right');
                    return false;
                }
                var extension = $("#file").val().split('.').pop().toUpperCase();
                if (extension != "PNG" && extension != "JPG" && extension != "GIF" && extension != "JPEG") {
                    common.showNotification('warning', 'Imvalid image file format.', 'top', 'right');
                    return false;
                }
                $.ajax({
                    url: '../Generic/SaveProfileImage',
                    type: "POST",
                    processData: false,
                    data: data,
                    dataType: 'json',
                    contentType: false,
                    success: function (data) {
                        if (data == true) { // if true (1)
                            setTimeout(function () {// wait for 1 secs(2)
                                location.reload(); // then reload the page.(3)
                            }, 1000);
                        }
                    },
                    error: function (er) { }

                });
                return false;
            });

        });

控制器:

[HttpPost]
        public ActionResult SaveProfileImage()
        {

            try
            {
                if (System.Web.HttpContext.Current.Request.Files.AllKeys.Any())
                {
                    var pic = System.Web.HttpContext.Current.Request.Files["HelpSectionImages"];
                    HttpPostedFileBase filebase = new HttpPostedFileWrapper(pic);
                    var fileName = docId.ToString() + ".png";
                    var path = Path.Combine(Server.MapPath("~/UploadGenericImage/"), fileName);
                    filebase.SaveAs(path);
                    //return Json("File Saved Successfully.");
                    return Json(new { data = true});
                }
                else { return Json("No File Saved."); }
            }
            catch (Exception ex) { return Json("Error While Saving."); }
        }

2 个答案:

答案 0 :(得分:0)

像这样更改脚本

$(function () {
        $('#btnImageUpload').click(function () {
            var data = new FormData();
            var genericID = $("#hdnGenericID").val();
            data.append("GenericID", genericID);
            var files = $("#file").get(0).files;

            if (files.length > 0) { data.append("HelpSectionImages", files[0]); }
            else {
                common.showNotification('warning', 'Please select file to upload.', 'top', 'right');
                return false;
            }
            var extension = $("#file").val().split('.').pop().toUpperCase();
            if (extension != "PNG" && extension != "JPG" && extension != "GIF" && extension != "JPEG") {
                common.showNotification('warning', 'Imvalid image file format.', 'top', 'right');
                return false;
            }
            $.ajax({
                url: '../Generic/SaveProfileImage',
                type: "POST",
                processData: false,
                data: data,
                dataType: 'json',
                contentType: false,
                success: function (data) {
                    if (data == true) { // if true (1)
                        setTimeout(function () {// wait for 1 secs(2)
                            location.reload(); // then reload the page.(3)
                        }, 1000);
                    }
                },
                error: function (er) { }

            });
            return false;
        });

    });

并像这样更改控制器

    [HttpPost]
    public ActionResult SaveProfileImage(string GenericID)
    {

        try
        {
            if (System.Web.HttpContext.Current.Request.Files.AllKeys.Any())
            {
                var pic = System.Web.HttpContext.Current.Request.Files["HelpSectionImages"];
                HttpPostedFileBase filebase = new HttpPostedFileWrapper(pic);
                var fileName = docId.ToString() + ".png";
                var path = Path.Combine(Server.MapPath("~/UploadGenericImage/"), fileName);
                filebase.SaveAs(path);
                //return Json("File Saved Successfully.");
                return Json(new { data = true});
            }
            else { return Json("No File Saved."); }
        }
        catch (Exception ex) { return Json("Error While Saving."); }
    }

然后在控制器中,您将能够访问GenericID的值。

答案 1 :(得分:0)

您是否尝试将FormCollection参数用于控制器操作方法,即

[HttpPost]
 public ActionResult SaveProfileImage(FormCollection form,string GenericID)
{....
}

此表单将具有您的隐藏字段值,并且可以访问隐藏字段,如下所示

var hiddenFieldValue = form["hdnGenericID"] ..