函数从ajax调用的其中一个参数中获取null值

时间:2017-10-31 14:42:00

标签: asp.net-mvc asp.net-mvc-5

我想用数据发送2个参数:使用ajax。其中一个参数是一个字符串,并且它总是在c#侧出现,但是第二个参数是一个由少量字符串和整数组成的对象,对函数来说总是空的。

    $.ajax({
        url : "/Clients/Create",
        data: { client : client, country : country},
        method : "post"
    });

有趣的是,当从浏览器调试js文件时,调试器会说对象包含它们应该的全部内容。

    public void Create(Client client, string country)
    {
       //creates...
    }

Country param是正确的,但是所有的客户端值都是null或0.我尝试交换他们的位置,看看它是否与订单有关,没有运气。我还尝试了多种方法来做数据:{client:client,country:country},"。

客户端类:

public class Client
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public int Zip { get; set; }
    public int CountryId { get; set; }
    public Client() { }
}

这就是我在js中构建客户端对象的方式。

var client = {
    Name : name,
    Address : address,
    City : city,
    Zip : zip
}

1 个答案:

答案 0 :(得分:0)

我建议你,如果客户是mvc模型

var client = $.parseJSON('@Html.Raw(Json.Encode(yourModelClient))');
car country = "country";  
var dataPlus = {
                 client : JSON.stringify(client),                   
                 country: country
            };

AJAX

$.ajax({
    url: '@Url.Action("Create", "Client")',
    data:   dataPlus,
    method : "POST",
});

然后是控制器

[HttpPost]
public actionresult Create(Client client, string country)
{

}