複数のパラメータを使用するルートがある場合、Html.ActionLinkに問題があります。最初の二つのルートが問題なく動作しますが、私が使用して第3の経路にアクションリンクを作成しようとすると複数のルート値を使用したASP.NET MVC URLルーティング
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"Tagging",
"{controller}.mvc/{action}/{tags}",
new { controller = "Products", action = "Index", tags = "" }
);
routes.MapRoute(
"SlugsAfterId",
"{controller}.mvc/{action}/{id}/{slug}",
new { controller = "Products", action = "Browse", id = "", slug = "" }
);
を::
<%= Html.ActionLink(Html.Encode(product.Name), "Details", new { id = product.ProductId, slug = Html.Encode(product.Name) }) %>
例えば、私のGlobal.asaxファイルで定義されている次のルートに与えられました
[site-root]/Details/1?slug = url-slug URLはもっと似ていますが[site-root]/Details/1/url-スラッグ
Can anyon私はどこに間違っているのか見ていますか?
私はいつもこの種の問題を抱えていましたが、コントローラ名とアクション名をハードコードする以外の解決策は見つけられませんでした。多くのルートにつながります。 – Will
あなたはASP.NET MVCプロジェクトのための安らかなルーティングを見ることができましたhttp://stevehodgkiss.com/2009/10/11/restful-routes-for-asp-net-mvc.html 私はこれを使用してURLを取得することができます/ blogs/1/posts/2/comments/3 – Paul