【问题标题】:How to retrieve the formData?如何检索表单数据?
【发布时间】:2014-04-30 08:53:08
【问题描述】:

谁能告诉我如何在控制器方法中检索formData 在 ASP.net MVC 中?

<script type="text/javascript">
    $(function () {                 
        $('#fileupload').fileupload({
            contentType: 'application/json; charset=utf-8',
            url: '/Home/GoodSave'
        })
        .on("fileuploadsubmit", function (e, data) {
            data.formData = {
                jsonOfLog: $("#ddlDocumentType option:selected").text()
            };
        });

        $("#fileuploadbutton").on("click", function() {
            $("#fileupload").submit();
        });
    });
</script>

【问题讨论】:

  • 显示视图代码,不需要使用json

标签: jquery asp.net-mvc form-data


【解决方案1】:

你通常在控制器动作中指定一个与表单数据中的字段同名的参数:

[HttpPost]
public ActionResult GoodSave(string jsonOfLog)

或者定义一个带有对应字段的模型:

public class Form {
    public string jsonOfLog {get; set;}
}
[HttpPost]
public ActionResult GoodSave(Form data)

【讨论】:

    【解决方案2】:

    我认为您正在尝试使用 ajax 上传文件。 使用this link通过ajax上传文件。

    但是,下面是获取发布表单数据的示例。

    @using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <input type="file" name="file" />
        <input type="submit" value="OK" />
    }
    
    [HttpPost]
    public ActionResult Index(HttpPostedFileBase file)
    {
        // Verify that the user selected a file
        if (file != null && file.ContentLength > 0) 
        {
            // extract only the fielname
            var fileName = Path.GetFileName(file.FileName);
            // store the file inside ~/App_Data/uploads folder
            var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            file.SaveAs(path);
        }
        // redirect back to the index action to show the form once again
        return RedirectToAction("Index");        
    }
    

    【讨论】:

    • 您好,上传文件没有问题。除了在下拉列表中选择的文本之外,我还想要。已在下面发布了工作代码。不过感谢您的帮助。
    【解决方案3】:

    感谢 U10 和 Jefraim Ngek,通过从您的回答中获取线索,我使它以这种方式工作:

    在视图中:

    <script type="text/javascript">
        $(function () {
                $('#fileupload').fileupload({
                    dataType: 'json',
                    url: '/Home/GoodSave', maxFileSize: 5000000,
                    add: function (e, data) {
                        $("#fileuploadbutton").click(function () {                        
                            data.formData = { jsonOfLog: $("#ddlDocumentType option:selected").text() };
                            data.submit();
                        });
                    },
                });
            });
    </script>
    

    在控制器方法中:

    [HttpPost]
    public JsonResult GoodSave(string jsonOfLog)
    {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2014-11-23
      相关资源
      最近更新 更多