Синтаксис для указания пространства имен при использовании helper.RouteUrl - PullRequest
3 голосов
/ 25 марта 2010

Я использую Asp.Net MVC 2 - RC с областями.

Я получаю неоднозначное исключение имени контроллера из-за одинакового имени контроллера в двух разных областях.

Я прочитал пост Фила Хаака Неоднозначные имена контроллеров с областями

Я не могу понять синтаксис при попытке использовать UrlHelper (у меня есть класс расширений).

, например

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

Я пробовал очевидное добавление namespace = "mynamespace", но это не сработало, просто добавило пространство имен к URL Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 25 марта 2010

ты пробовал

helper.RouteUrl("ARoute", 
    new { controller = "Home", action = "Index", Area = "YourArea" });
1 голос
/ 25 марта 2010

Может быть, вы можете обойти это, используя два отдельных маршрута.Я думаю, что это также то, что Фил пытается продемонстрировать в примере регистрации маршрута на посту ' Неоднозначные имена контроллеров с областями '

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" });
}
...