0

事件控制器

  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>

在这里,我想使用操作方法,以便它应该路由到 ID 为 localhost/Event/Browse/1 的操作链接,并且在悬停时它应该显示链接

请帮我解决这个问题,我也在 route.config 中路由了路径

4

2 回答 2

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
                            });

您需要RouteCollection在 App_Start 内的 RouteConfig.cs 文件中应用它。但我以前从未尝试过route.config,但我相信它们不应该有很大的不同。

最后一件事。 使用Camel Case来表示参数名称,例如eventId, 而不是EventId. 这只是一个最佳实践。

希望这可以帮助。

于 2013-06-10T08:06:38.807 回答
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

这两种方法都应该适合你。

于 2013-06-10T07:59:45.080 回答