通过Ajax调用时,断点不会触发控制器动作

时间:2018-10-17 13:10:34

标签: jquery .net ajax asp.net-mvc actionmethod

我正在通过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,但断点未到达方法。同样,它什么也不做,..没有响应,没有成功消息,好像根本没有触及动作方法。

我在这里做错了。我尝试过针对类似问题发布的所有建议答案,但都无济于事。

请帮助。预先感谢。

2 个答案:

答案 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();