作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ASP.NET MVC 4,并且我正在尝试将 JSON 对象发送到接受的 Controller
这是我的 javascript 和 jQuery:
var jsonObject = {
"PlantShipTo":{
"PlantID" : shipToID.toString()
}
};
$.ajax({
type: "POST",
contentType: 'application/json; charset=utf-8',
timeout: 15000,
url: "/Transfer/TransferOut",
data: JSON.stringify(jsonObject),
dataType: 'json',
tradational: 'true',
success: function (response) {
}
});
在我的 Controller 中,我接受下面定义的“PlantShipTo”类型的对象:
public class PlantShipTo
{
public int PlantID { get; set; }
}
为了简洁起见,我将仅显示 Controller 定义:
public ActionResult TransferOut(PlantShipTo shipto)
{
PlantShipTo p = shipto;
我希望 MVC 模型绑定(bind)将 JSON 识别为 PlantShipTo 对象,但当我在 Controller 中检查该对象时,该对象为 null。以下是我由 Fiddler 提供的一些请求信息。 JSON 看起来与我的“PlantShipTo”类匹配。我缺少什么?
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/json; charset=utf-8
X-Requested-With: XMLHttpRequest
{"PlantShipTo":{"PlantID":"2"}}
最佳答案
仅当您发送的数据与 Controller 中指定的参数名称匹配时,MVC 才能自动建模绑定(bind)。
您可以更改 JSON 中根元素的名称以匹配您的参数名称:
var jsonObject = {
"shipTo":{
"PlantID" : shipToID.toString()
}
};
或者删除根元素,以便 MVC 可以自动绑定(bind)到参数的属性:
var jsonObject = {
"PlantID" : shipToID.toString()
};
关于javascript - 如何在 ASP.NET MVC Controller 中正确发送和处理 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21559132/
我是一名优秀的程序员,十分优秀!