3

Asp.Net MVC 2-RC w/Areasを使用しています。

2つの異なる領域で同じコントローラー名を使用しているため、あいまいなコントローラー名の例外が発生します。

PhilHaackの投稿「エリア付きのあいまいなコントローラー名」を読みました

UrlHelperを使おうとすると構文がわかりません(拡張クラスがあります)。

例えば

public static string MyAreaHome(this UrlHelper helper) {
    return helper.RouteUrl("ARoute", 
        new { controller = "Home", action = "Index" });
}

namespace = "mynamespace"を追加することは明らかですが、うまくいきませんでした。URLに名前空間を追加しただけです。助けてくれてありがとう。

4

2 に答える 2

1

たぶん、2つの別々のルートを使用してそれを回避することができます。これは、Philが「エリアのあるあいまいなコントローラー名」の投稿のルート登録の例で示していることでもあると思います。

routes.MapRoute(
    "ARoute",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

routes.MapRoute(
    "BRoute",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

次に、次のように両方のルートを参照できます。

public static string MyAreaHome(this UrlHelper helper) {
    return helper.RouteUrl("ARoute", 
        new { controller = "Home", action = "Index" });
}

public static string MyOtherAreaHome(this UrlHelper helper) {
    return helper.RouteUrl("BRoute", 
        new { controller = "Home", action = "Index" });
}
于 2010-03-24T23:48:59.137 に答える
1

試しましたか

helper.RouteUrl("ARoute", 
    new { controller = "Home", action = "Index", Area = "YourArea" });
于 2010-03-25T02:49:35.613 に答える