私はいくつかのルートを持つMVC3アプリケーションを持っています。彼ら二人は次のように定義されています。Url.Actionは期待される結果を与えません。不要なルート値が残ります
routes.MapRoute(
null,
"System/{name}", // URL with parameters
new { controller = "Systems", action = "Index" } // Parameter defaults
);
routes.MapRoute(
null,
"Carrier/{name}", // URL with parameters
new { controller = "Carriers", action = "Index" } // Parameter defaults
);
さて、私のメニューで私はUrl.Action使用して作成されているこれらのルートには2つのリンクがあります:私は、アプリケーションを起動したときに
Url.Action("Index","Systems")
Url.Action("Index","Carriers")
今、すべてのものメニュー内のリンクが/System/
と/Carrier/
と表示され、それが期待値です。私は、Webページの例/System/MySystem
のために参照するとき
はしかし、私はまだリンクが同じ場所を指すようにしたいだろうが、今、彼らは/System/MySystem
と/Carrier/MySystem
を指します。
私は、ルート値から名前を使用することからリンクを維持するために多くのことを試みましたが、役に立たなかった。ルートの値から名前値がないことを確実にするためにここに何か良い方法はあります
がUrl.Action("Index","Systems", new{name = (string)null})
今リンクが
/System?name=MySystem
として現れた:私はこれをしようとしたとき、私は経験した奇妙なケースでしたどのようにしてこれらのリンクに干渉しますか?
私はもっとエレガントなものも望んでいましたが、少なくともこれは仕事を完了させます。ありがとう。 –