私は既存のMVC5アプリケーションでいくつかのドメイン名ロジックを実装しようとしています。私が実行している問題は、ルートからカスタムサブクラスを使用しようとするとネームスペースフィールドを尊重せず、2つの異なるユーザーコントローラがあるためにエラーをスローすることです。対照としてMVC5のカスタムルートとネームスペース
、これは完全に正常に動作します:
routes.MapRoute("Login",
"login/",
new { controller = "User", action = "Login" },
new[] { "Quotes.Web.Controllers" });
マイDomainRouteクラスはルートから継承し、ちょうどドメインのプロパティを追加します。
public DomainRoute(string domain, string url, object defaults, string[] namespaces = null)
: base(url, new RouteValueDictionary(defaults), new MvcRouteHandler())
{
Domain = domain;
DataTokens = new RouteValueDictionary {["Namespaces"] = namespaces};
}
と私はそれが好き登録:
var loginRoute = new DomainRoute(
domain,
"login/",
new { controller = "User", action = "Login" },
new[] { "Quotes.Web.Controllers" });
routes.Add("Login", loginRoute);
DataTokens作業バージョン間で同一に見えると私の壊れたバージョンはまだ私のDomainRouteは、名前空間を持っているという事実を無視しているようだここでは、関連するコンストラクタがありますエントリ
「User」というコントローラに一致する複数のタイプが見つかりました。これは、このリクエストを処理するルート( 'login /')が、要求に一致するコントローラを検索するための名前空間を指定していない場合に発生します。このような場合は、 'namespaces'パラメータを取る 'MapRoute'メソッドのオーバーロードを呼び出してこのルートを登録します。
私は何が欠けていますか?