4

好的,我在使用 actionlink htmlhelper 时遇到了一些问题。

我有一些复杂的路由如下:

        routes.MapRoute("Groep_Dashboard_Route", // Route name
                        "{EventName}/{GroupID}/Dashboard", // url with Paramters
                        new {controller = "Group", action="Dashboard"});

        routes.MapRoute("Event_Groep_Route", // Route name
                        "{EventName}/{GroupID}/{controller}/{action}/{id}",
                        new {controller = "Home", action = "Index"});

我的问题是生成与这些模式匹配的操作链接。eventname 参数实际上只是为了提供用户友好的链接。它什么也没做。

现在,当我尝试例如生成链接时。这显示了某个 groep 的仪表板。像:

  mysite.com/testevent/20/Dashboard

我将使用以下操作链接:

<%: Html.ActionLink("Show dashboard", "Group", "Dashboard",  new { EventName_Url = "test", GroepID = item.groepID}, null)%>

我在 html 中给出的实际结果是:

 <a href="">Show Dashboard</a>

我应该有的是这样的:

 <a href="test/20/Dashboard">Show Dashboard</a>

请多多包涵,我还是 ASP MVC 的新手。有人可以告诉我我做错了什么吗?

帮助将不胜感激!

4

2 回答 2

3

我认为问题在于它没有找到与这些参数匹配的路由。您拼错了 GroupID,并且您输入了一个在您尝试匹配的路由中不存在的路由参数(“EventName_Url”)。actionlink 应该看起来像这样:

<%: Html.ActionLink("Show dashboard", "Group", "Dashboard",  new { EventName = "test", GroupID = item.groepID}, null)%
于 2010-05-06T07:58:22.200 回答
3

除了已经指出的内容之外,这里还有很多问题 - 您还以错误的方式获得了 Controller 和 Action 字符串。

您所追求的这个方法签名如下所示:

HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

所以你的需要是:

<%: Html.ActionLink("Show dashboard", "Dashboard", "Group", new { EventName = "test", GroupID = item.groupID}, null) %>

HTH,
查尔斯

于 2010-05-06T09:06:25.583 回答