2014-11-16 76 views
1

我正在使用MVC 4和剃鬚刀建立一個簡單的網站的過程。我無法從正在填寫的url.action中接收int。我已調試,發現該ID確實有一個值(該ID恰好是1),但當它傳遞它以某種方式變爲空。URL.Action傳遞null,需要整數

視圖部分:

@if (Model.Any()) 
{ 
    foreach (var e in Model) 
    { 
    <a href="@Url.Action("EventDetails", "Event", new{id = e.ID})"> 
     <div id="eventBox"> 
     <!-- stuff !--> 
     </div> 
    </a> 
    } 
} 

而且控制器:

public ActionResult EventDetails(int? eventID) 
{ 
    if (eventID != null) 
    { 
     //stuff 
    } 
} 

我真的不知道發生了什麼在幕後以使其改變爲null,我需要幫助。我只使用由Visual Studio提供的默認路由現在:

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

回答

2

你路過名爲id的路線值

new { id = e.ID } 

所以更改方法參數名

public ActionResult EventDetails(int? id) 
與之匹敵