在我Index
頁我有以下鏈接Details
觀點:MVC路由空參數錯誤
@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.Web.Mvc.ActionResult Details(Int32)'在 'MyProject.Web.Controllers.ClubsController'中的非空類型'System.Int32'的0。可選 參數必須是參考類型,可爲空類型,或者聲明爲可選參數 。參數名:參數
我知道這是什麼做的路由,但是我已經試過交換UrlParameter.Optional
到""
,使視圖模型的ClubId可空,但仍然錯誤。
如果我重新連接我的控制器接受Club
對象,並從索引視圖item
通過,則一切都很好,和ClubId
在調試填充,但我留下了URL中的愚蠢大型參數列表。
我真的不明白問題在這裏?
你有沒有試過使用ClubId而不是僅僅是id? – oskar132 2015-02-09 16:37:34
爲了上帝的緣故,謝謝 – JsonStatham 2015-02-09 16:40:03
'/ url/parameters'和'?query = string&parameters'之間有區別。前者影響路由,後者不影響路由。 – Andrei 2015-02-09 16:40:46