我有一个名为AuctionsController的控制器,带有方法
public ActionResult BidsByAuction(int auctionId, int page = 1)
当我导航到/Auctions/BidsByAuction/38
时,我收到以下错误:
参数字典包含非可空类型'System.Int32'的参数'auctionId'的空条目,用于'Extranet.Controllers.AuctionsController'中的方法'System.Web.Mvc.ActionResult BidsByAuction(Int32)'。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数
这里出了什么问题?
答案 0 :(得分:6)
您是否为您的方法创建了一个以AuctionID作为参数的cutom路线?如果不是,则默认情况下,该参数称为“id”。
如果你想要auctionid,那么你需要建立一个新的路线,将名称设置为auctionid。
不完全确定会解决您的问题,因为可选参数可能存在问题,但修复此问题并查看您的问题。
答案 1 :(得分:0)
“38”映射到默认路由的最后一个参数{id}
。
第二个参数应该是可选的,如果查询字符串中没有提供它,则不考虑它。
答案 2 :(得分:0)
谢谢大家。男生错误。你没事,我应该在控制器方法中使用id作为参数名。这就是我收到此错误的原因。