事件控制器
public class EventController : Controller {
public ViewResult Browse(Int32 EventId) {
return View();
}
}
浏览-视图
@model IEnumerable<Events.WebUI.Models.EventModel>
@foreach (var e in Model) {
<div id="event-content">
<img src="@e.LogoUrl" width="512px" title="event header" height="83px">
</div>
<div class="event-text">
@e.EventName
@Html.ActionLink(@e.EventName, "Browse", "Event", new { EventId = @e.EventId })
</div>
这里我想使用action方法,以便它应该路由到id为localhost / Event / Browse / 1的动作链接,并且在悬停时它应该显示链接
请帮我解决这个问题,我也路由了route.config中的路径
答案 0 :(得分:1)
这里有两个选项:
<强> 1。适用于所有类似案例的常规设置。
routes.MapRoute("Events", "{controller}/{action}/{eventId}", new {
controller = "Home",
action = "Index",
eventId = UrlParameter.Optional
});
<强> 2。特定设置仅适用于此情况。
routes.MapRoute("EventsSpecific", "Event/Browse/{eventId}",
new {
controller = "Event",
action = "Index",
eventId = UrlParameter.Optional
});
您需要在App_Start内的RouteConfig.cs文件中的RouteCollection
中应用此功能。但我以前从未尝试route.config
,但我相信它们不应该有很大的不同。
最后一件事。
使用 Camel Case 作为参数名称,例如eventId
,而不是EventId
。这只是一种最佳做法。
希望这有帮助。
答案 1 :(得分:0)
@Html.ActionLink(@e.EventName, "Browse", "Event", new { EventId = @e.EventId },null)
URL将是 - localhost / Event / Browse?EventId = 1
@Html.ActionLink(@e.EventName, "Browse", new { EventId = @e.EventId })
URL将类似于 - localhost / Event / Browse / 1
这两种方法都适合你。