控制器方法中的MVC3参数

本文关键字:MVC3 参数 方法 控制器 | 更新日期: 2023-09-27 18:17:21

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

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

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

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

这里出了什么问题?

控制器方法中的MVC3参数

您是否为您的方法创建了一个以AuctionID作为参数的自定义路由?如果没有,则默认为"id"。

如果需要auctionid,则需要新建一条路由,将名称设置为auctionid。

不完全确定这将解决您的问题,因为可选参数也可能有问题,但修复这个,看看您得到什么

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

谢谢大家。男生的错误。你说得对,我应该在控制器方法中使用id作为参数名。这就是为什么我得到这个错误。