【问题标题】:How exactly does a JSON.stringify automatically map to my DTOJSON.stringify 究竟如何自动映射到我的 DTO
【发布时间】:2015-01-19 15:19:14
【问题描述】:

我在 jquery 中有一个对象:

function SaveRequest() {
var request = BuildSaveRequest();

$.ajax({
    type: "POST",
    processData: false,
    data: JSON.stringify({'model':request}),
    url: "somepage.aspx/JsonSave",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function(response, status, xhr) {
    },
    error: function (res, status, exception) {
    }
});
return false;
}

function BuildSaveRequest() {

var request = {
    customerName: $("#CustomerName").val(),
    contactName: $("#ContactName").val(),
};

return request;
}

我有以下 c# 代码:

[WebMethod]
public static string JsonSave(MyModel model)
    {
    }
}

public class MyModel 
{
    public string CustomerName { get; set; }
    public string ContactName { get; set; }
}

当 ajax 调用进行时,Web 方法 JsonSave 会自动将 jquery 对象“request”中的值(CustomerName 和 ContactName)放入对象“model”中的适当属性中。它怎么知道这样做???

【问题讨论】:

  • 模型活页夹是个好东西msdn.microsoft.com/en-us/magazine/hh781022.aspx
  • 哇!这很有趣,谢谢分享@dbarnes。所以即使我是从 Web 表单而不是 MVC 应用程序发送数据,它的工作原理也完全相同?
  • 我创建了一个答案只是为了帮助你更多。

标签: c# jquery ajax json webmethod


【解决方案1】:

添加来自 cmets 的答案:

Model Binders 是个好东西。

我建议阅读找到的源代码 here 这是针对 MVC 的,但我很确定它在 webforms 中的作用也是一样的。

它真的很聪明,可以检查数据的 in 请求,因此无论您使用 webforms 还是 mvc 都无关紧要。您甚至可以创建我们的own

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2013-11-13
    • 2020-09-29
    • 2014-09-26
    • 1970-01-01
    • 2021-01-14
    相关资源
    最近更新 更多