質問

私は、私のASP.NET MVC2コンテンツフォルダのコンテキストで実行されているローカライズhttphandlerを持っています(それが行っているものの一部は/ content / cssの一部です)。この特定の要求セットのデフォルトルートは次のようになります。

context.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

context.MapRoute(
    "Area_default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new { controller = new VirtualDirectoryConstraint("VDirectory1") },
    new string[] { "Namespace.One.MVC" }
);
.

(脇の切りとして - 私はそれが関連性があるとは思わないが、念のため、apperyDirectoryConstraintはこの経路上で拒否されたapplication path / virtualディレクトリからの要求が拒否された場合、このルートで一致します)

この構成では、ContentControllerクラスがないため、http://server.net/VDirectory1/Content/css/LessCompiler.axdへの呼び出しは失敗します。すべてよくそして良い。

を追加するとき

context.Routes.IgnoreRoute("{Content}/{*pathInfo}");
.

その呼び出しは成功しましたが、後続の

http://server.net/VDirectory1/Localization/ClientScript/en-US.js
.

http://server.net/VDirectory1/Authorization/ClientScript
.

失敗。 Phil Haackのroutedebuggerツールを見て、それらの呼び出しはコンテンツIgnorerouteルートと一致しています:

True    {Content}/{*pathInfo}   (null)  (null)  (null)
. そのため、それぞれLocalizationControllerとAuthorizationControllerにルーティングされていない。

明らかにignorerouteがどのように使用されるべきか、そしてその特定のignorerouteがそれらの要求に一致しているのかについて何かを誤解しています。私は何が足りないのですか?

役に立ちましたか?

解決

GiNoRerouteがContentの代わりに{Content}を使用してはいけませんか?

context.Routes.IgnoreRoute("Content/{*pathInfo}");
.

現時点では、{Content}はおそらく変数として展開されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top