Asp.net mvc 具有POST和MVC的多参数

Asp.net mvc 具有POST和MVC的多参数,asp.net-mvc,post,jquery,Asp.net Mvc,Post,Jquery,嗯。所以我在一个页面上有两个元素,它们不是以单一的形式存在的。我需要通过JQuery.Ajax()方法将这些内容发布回我的控制器。现在我遇到的问题是,虽然我的参数可以正确地发布,但只有当我将它们设置为字符串并且它们在值中包含参数名时,它们才会正确发布。因此: Public ActionResult Method(String Age1, String Age2) { Age1=23; Age2=43 } 我明白了 Public ActionResult Method(String Ag

嗯。所以我在一个页面上有两个元素,它们不是以单一的形式存在的。我需要通过JQuery.Ajax()方法将这些内容发布回我的控制器。现在我遇到的问题是,虽然我的参数可以正确地发布,但只有当我将它们设置为字符串并且它们在值中包含参数名时,它们才会正确发布。因此:

Public ActionResult Method(String Age1, String Age2)
{
    Age1=23; Age2=43
}
我明白了

Public ActionResult Method(String Age1, String Age2)
{
  Age1="Age1=23"; Age2="Age2=43"
}
这很恼人。有没有办法确保MVC正确映射参数,并且只接受正确的值?我真的希望它能做到:

Public ActionResult Method(Int32 Age1, Int32 Age2)
{
  Age1="Age1=23"; Age2="Age2=43"
}
jQuery调用:

$.ajax{(

//other stuff
data: { Age1: $('.id').val(), Age2: $('.id2').val() };
)};

哎呀,这是因为在我的实际代码中我使用了Serialize!哼

老实说,如果您通过$.ajax传递数字23和43,而不是“Age1=23”和“Age2=43”,那么您所做的事情没有任何错误。如果是,int肯定不起作用,因为框架无法将这些字符串转换为整数

将您的ajax()调用更改为这个可能是值得的,只是为了看看会发生什么

data: { 
    Age1: parseInt($('.id').val()),
    Age2: parseInt($('.id2').val())
}

您是否可以将发布到该操作的jQuery调用包括在内?在我看来,这正是JSON发明的原因。这就是问题所在,字符串正在被传递。