我正在使用 MVC 4 和 razor 构建一个简单的网站。我无法从正在填充的 url.action 接收 int。我已经调试并发现 id 确实有一个值(id 恰好是 1)但是当它被传递时它以某种方式变为 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
}
}
我真的不知道幕后发生了什么导致它变为空,我需要帮助。我现在只使用 Visual Studio 提供的默认路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);