【问题标题】:How to get the data from json to MVC4 c#?如何从 json 获取数据到 MVC4 c#?
【发布时间】:2014-02-23 02:51:02
【问题描述】:

我有一个带有表单的 MVC4 单页网站。内容的加载是通过ajax实现的。我不知道如何在 C# 中从 JSON 中获取数据?这是我的代码:

JavaScript:

$("#subnt").click(function (event) {
        event.preventDefault();
        var url = "/Home/Submit";
        $.post(url, $('form[name="cnt_us-frm"]').serialize(), function (data) {
            if (data.Success === true) {
                $("#min-content").hide().load("/Home/PartialSubmit").fadeIn('normal');   // loads the page into 'min-content' section
            }
            else {
                // display error message
            }
        })
    });
});

C#:

[HttpPost]
public JsonResult Submit()
    {
        return Json(new { Success = true, SomeOtherData = "testing" });
    }

【问题讨论】:

  • 你不需要改变任何东西 JsonResult动作方法默认返回json格式的数据
  • 你在问如何在你的控制器中访问表单数据?
  • 不,反过来。如何从表单(json)中检索数据。

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


【解决方案1】:

请检查下面的工作代码 -

我已经完全使用了你的工作代码 -

    [HttpPost]
    public JsonResult Submit()
    {
        return Json(new { Success = true, SomeOtherData = "testing" });
    }

然后我使用以下 JQuery 来完成上述操作 -

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
    $(function () {
        $('#click').click(function (e) {
            $.ajax({
                url: "@Url.Action("Submit")",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (response) {
                    alert(response);
                },
                success: function (data) {
                    if (data.Success == true)
                        alert(data.SomeOtherData);
                }
            });
        });
    });
</script>

<input type="submit" value="click" id="click" />

作为输出,我能够得到如下所示的警报 -

【讨论】:

    【解决方案2】:

    最简单的方法是使用上级json.net

    [HttpPost]
    public string Submit()
    {
        var result = new { success = true, someOtherDate = "testing"};
        var json = JsonConvert.SerializeObject(result);
        return json;
    }
    

    【讨论】:

      【解决方案3】:

      你的代码没问题,你可以添加调试器。打开 developer tools 检查你的data

      $.post(url, $('form[name="cnt_us-frm"]').serialize(), function (data) {
                   debugger;
                  if (data.Success === true) {
                      $("#min-content").hide().load("/Home/PartialSubmit").fadeIn('normal');   // loads the page into 'min-content' section
                  }
                  else {
                      // display error message
                  }
      

      【讨论】:

        【解决方案4】:

        不,反过来。如何从表单(json)中检索数据。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-07-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多