../Search/Recipes/Deserts/PieのようにURLを入力すると、そのページにリダイレクトされます(SearchController、actionメソッド。私は私のGlobal.asaxの中にルートを追加しまし同じことを達成するために、次のようになります:パラメータをクエリ文字列として渡すのではなく、MVC3でカスタムURLを生成する方法
routes.MapRoute(
"SearchRecipes",
"Search/Recipes/{category}/{type}",
new { controller = "Search", action = "Recipes", category = "all" , type = ""}
);
しかし、どのを通じてそのURLを生成するには&パラメータは砂漠&パイだろうレシピ
NBだろう私のコード?Url.Actionにルート値を追加しようとすると、クエリ文字列として来る。
たとえば、
Url.Action("Recipes" , "Search" , new { type = item.type, isPie = item.isPie})
は私のように見えるリンク与えるだろう:Search/Recipes?type=Deserts&isPie=Y
、
を私はSearch/Recipes/Deserts/Y
のようなURLを生成したいです。
同じことをどのように達成できるのか教えてください。
基本的には、パラメータをクエリ文字列として渡したいのではなく、\ separated valuesに従いたいと思っています。
この新しいルートを使用することができます最後のルートとまったく同じように見えますが、パラメータは異なります。ルーティングエンジンは、どうやってそれらを区別する必要がありますか? –
それとも、この行動が既存のルートと一致しないのはなぜですか? –
@ 32bitkid:基本的に私のパラメータをクエリ文字列として渡したいのではなく、\ separate値に従いたいと思っています。 – Biki