控制器方法中的MVC3参数

时间:2011-12-08 18:24:03

标签: c# asp.net-mvc asp.net-mvc-3

我有一个名为AuctionsController的控制器,带有方法

public ActionResult BidsByAuction(int auctionId, int page = 1)

当我导航到/Auctions/BidsByAuction/38时,我收到以下错误:

参数字典包含非可空类型'System.Int32'的参数'auctionId'的空条目,用于'Extranet.Controllers.AuctionsController'中的方法'System.Web.Mvc.ActionResult BidsByAuction(Int32)'。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数

这里出了什么问题?

3 个答案:

答案 0 :(得分:6)

您是否为您的方法创建了一个以AuctionID作为参数的cutom路线?如果不是,则默认情况下,该参数称为“id”。

如果你想要auctionid,那么你需要建立一个新的路线,将名称设置为auctionid。

不完全确定会解决您的问题,因为可选参数可能存在问题,但修复此问题并查看您的问题。

答案 1 :(得分:0)

“38”映射到默认路由的最后一个参数{id}。 第二个参数应该是可选的,如果查询字符串中没有提供它,则不考虑它。

答案 2 :(得分:0)

谢谢大家。男生错误。你没事,我应该在控制器方法中使用id作为参数名。这就是我收到此错误的原因。