私はあなたが何を求めているのか分からないので、私の答えが間違っていれば、あなたが望むものを推測しているからです。
Global.asax
にはいつでも別のルートを追加できます。それはしばしば、「規範外」のケースに対処する最も簡単な方法です。
あなたが製品のリストを返したい場合、あなたはこのルートを使用します:
routes.MapRoute(
"ProductList",
"{language}/{products}/{action}/",
new { controller = "Products", action = "List", language = "en" });
エンティティの複数のタイプがこれを使用しようとしている場合は、より汎用的な{controller}
で製品を置き換えることができますルート。必要に応じて変更する必要があります。
は、たとえば、これは、任意の製品のリストを取得するために使用できることを、一般的なルートを作るために:
routes.MapRoute(
"ProductList",
"{language}/{controller}/{action}/",
new { controller = "Products", action = "List", language = "en" });
これが何をするか、それはあなたが常にあなたのDefault
の前に置く必要があること(ルートを作成することです「ユーザーが何を入力したとしても、彼らが要求するコントローラーとアクションを私に与えてください」と言う)。 (例えば、/en/Products/List
、または/en/Users/List
など)。
コントローラを訪問するには、yoursite.com/en/products/list
に移動するだけです。 HTMLActionLink
を使用してコントローラにアクセスすることもできます。
<%=Html.ActionLink("Product", "List", new { controller = Products }, null) %>
私は私のIDEオープンせずにこれを書いているので、ActionLink
はそれでエラーを有することができます。
どこに配置されますか? –
UrlHelperを拡張するヘルパークラスで – Gregoire
https://stackoverflow.com/questions/8830052/how-do-i-get-the-controller-and-action-names-from-the-referrer-uri –