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 パラメーターは、ユーザー フレンドリーなリンクを表示するためのものです。それは何もしません。

たとえば、リンクを生成しようとしているとき。特定のグループのダッシュボードを表示します。お気に入り:

  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") を入力しました。アクションリンクはおそらく次のようになります。

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

すでに指摘されていること以外にも、ここには多くの問題があります。また、コントローラーとアクションの文字列が間違った方法で配置されています。

このメソッド シグネチャは次のようになります。

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 に答える