【问题标题】:Multiple Parameters with POST and MVCPOST 和 MVC 的多个参数
【发布时间】:2009-05-05 20:08:50
【问题描述】:

好的。所以我在一个页面上有两个元素,它们不在一个表单中。我需要将这些通过 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() };
)};

Opps,这是因为在我的实际代码中我使用的是序列化!呃!

【问题讨论】:

  • 您能否包含发布到此操作的 jQuery 调用?
  • 在我看来这正是 JSON 的发明目的

标签: asp.net-mvc post jquery


【解决方案1】:

老实说,如果您实际上是通过 $.ajax 传递数字 23 和 43,而不是“Age1=23”和“Age2=43”,那么老实说,我认为您的操作没有任何问题。如果你是, int 肯定不会工作,因为框架不能将这些字符串转换为整数。

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

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

【讨论】:

  • 这就是问题所在,正在传递字符串。
猜你喜欢
  • 2018-01-24
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
  • 2013-01-02
  • 2010-09-15
  • 2015-08-21
  • 2016-08-14
相关资源
最近更新 更多