我不知道我在这里想念的是什么。我试图填充一个Jquery对象,并将该对象发送到具有Model作为参数的控制器,并使其正确绑定。
我知道Ajax调用是有效的,因为我在Controller中命中了断点。
这是我的Jquery,用于创建将通过ajax发送的对象
var testObj = {};
testObj.empNum = '1234';
这是我的Ajax电话:
var url = BASE_URL + "Assessment/testing";
$.post({
url: url,
data: {
test: testObj
},
success: function (data) {
console.log(data)
},
dataType: 'JSON'
});
这是我的模特:
public class test
{
public string empNum { get; set; }
}
我的控制器:
[HttpPost]
public JsonResult testing(test t)
{
return Json(t, JsonRequestBehavior.AllowGet);
}
我希望控制器中的t包含empNum = 1234的测试模型,但它会继续返回空值。
答案 0 :(得分:0)
尝试使用此方法将js对象转换为c#模型
$.post({
url: url,
contentType: "application/json; charset=utf-8",
data: JSON.stringify(testObj),
或多个参数:
$.post({
url: url,
contentType: "application/json; charset=utf-8",
data: JSON.stringify( {test: testObj} ),
答案 1 :(得分:0)
很抱歉浪费大家的时间,但这是问题所在:
控制器中的这一行的参数为t:
public JsonResult testing(test t)
在我的Ajax调用中,参数名称必须与控制器上的参数名称匹配。所以在这种情况下;测试应该更改为t以匹配控制器
data: {
test: testObj
},