我正在通过AJAX调用控制器中的方法
var jsonParams = { name: $('#txt_name').val(), address: $('#txt_addr').val() };
var json = JSON.stringify(jsonParams);
var actionUrl = "/AddressController/SaveAddress";
alert('all ok'); //alert arrives
$.ajax({
url: actionUrl,
data: json,
dataType: "json",
type: 'POST',
async: true,
contentType: 'application/json; charset=utf-8',
success: function (response) {
// success message
}
});
这是我的控制器操作方法
public JsonResult SaveAddress(string name, string address)
{
//code
}
这里我将断点放在SaveAddress方法中,但是当我尝试使用Firebug调试代码时,将调用Ajax,但断点未到达方法。同样,它什么也不做,..没有响应,没有成功消息,好像根本没有触及动作方法。
我在这里做错了。我尝试过针对类似问题发布的所有建议答案,但都无济于事。
请帮助。预先感谢。
答案 0 :(得分:0)
您可以创建一个类似于JsonParams属性的viewModel,并通过ViewModel从控制器中获取JSON.stringify。
Public class TestViewModel
{
public string name {get;set;}
public string address{get;set;}
}
public JsonResult SaveAddress(TestViewModel json)
{
//code
}
答案 1 :(得分:0)
尝试以下网址,因为您的控制器方法接受两个参数,而不是json字符串。
var actionUrl = "/Address/SaveAddress?name=" + $('#txt_name').val() +"&address=" + $('#txt_addr').val();