【发布时间】:2015-02-09 16:34:57
【问题描述】:
在我的Index 页面上,我有以下指向Details 视图的链接:
@Html.ActionLink("Details", "Details", new { id = item.ClubId })|
我的控制器需要一个 int:
public ActionResult Details(int ClubId)
{
var club = _service.GetClub(ClubId);
var model = AutoMapper.Mapper.Map<ClubViewModel>(club);
return View(model);
}
我每次都得到这个:
参数字典包含参数“ClubId”的空条目 方法的不可为空类型“System.Int32” 'System.Web.Mvc.ActionResult 详细信息(Int32)' 在 'MyProject.Web.Controllers.ClubsController'。一个可选的 参数必须是引用类型、可为空的类型或声明为 一个可选参数。参数名称:参数
我知道这与路由有关,但是我尝试将 UrlParameter.Optional 交换为 "" 并使 ViewModel 的 ClubId 可以为空,但错误仍然存在。
如果我重新连接我的控制器以接受Club 对象并从索引视图中传入item,那么一切都很好,ClubId 已在调试中填充,但我留下了一个愚蠢的大参数列表网址。
我真的不明白这里的问题是什么?
【问题讨论】:
-
你试过用 ClubId 代替 id 吗?
-
看在上帝的份上,谢谢
-
/url/parameters和?query=string&parameters之间存在差异。前者影响路由,后者不影响。 -
您介意将我的标记为答案吗?非常感谢:D
标签: c# asp.net-mvc