2014-11-16 3 views
1

Я в процессе создания простого веб-сайта с использованием MVC 4 и бритвы. У меня возникли проблемы с получением int из url.action, который заполняется на лету. Я отлаживал и обнаружил, что идентификатор имеет значение (id имеет только 1), но когда он передается, он каким-то образом становится нулевым.URL.Action, передающий значение null, требуется целое число

The View часть:

@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 
    } 
} 

Я действительно не знаю, что происходит за кулисами, чтобы заставить его изменить нулевое значение, и мне нужна помощь. Я использую только маршрут по умолчанию, предоставляемое 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^