我有一个动作方法的控制器如下:ASP.NET MVC - 传递参数给控制器
public class InventoryController : Controller
{
public ActionResult ViewStockNext(int firstItem)
{
// Do some stuff
}
}
当我运行它,我得到一个错误,指出:
参数字典不包含参数'firstItem'的'System.Int32'类型的有效值。要使参数可选,其类型应该是引用类型或Nullable类型。
我曾经在一个点工作,我决定尝试没有参数的功能。发现控制器不是持久的,我把参数放回去,现在当我调用该方法时,它拒绝识别参数。
我使用此URL语法来调用的行动:
http://localhost:2316/Inventory/ViewStockNext/11
任何想法,为什么我会得到这个错误,我需要做什么来解决这个问题呢?
我试着添加另一种方法,它采用一个整数的类,它也失败了同样的原因。我试着添加一个接受一个字符串,并将该字符串设置为空。我尝试添加一个没有参数,并且工作正常,但当然它不适合我的需要。
或者只是将“firstItem”重命名为“id” – 2009-02-06 16:01:54
另外,向MapRoute添加一个约束对象是明智的选择,如下所示:`new {firstItem = @“\ d”}`。这样它将**仅接受参数是否为任何类型的数字。您可以随意修改正则表达式,甚至限制小数位数,如下所示:`new {firstItem = @“\ d {4}”}` - 现在只能有4个数字。编辑:完全修改MapRoute的示例:http://jsfiddle.net/HJRgT/ – KristianB 2011-09-18 16:57:35