Syntax to specify Namespace when using helper.RouteUrl
I am using Asp.Net MVC 2 - RC w/ Areas.
I am receiving an ambigious controller name exception due to having same controller name in two different areas.
I've read Phil Haack's post Ambiguous Controller Names With Areas
I can't figure out the syntax when trying to use UrlHelper (I have an extensions class).
e.g.
public static string MyAreaHome(this UrlHelper helper) {
return helper.RouteUrl("ARoute",
new { controller = "Home", action = "In开发者_Go百科dex" });
}
I've tried the obvious of adding namespace="mynamespace" but that didn't work, it just added the namespace to the url. Thanks for any help.
Maybe you can work around it by using two separate routes. I think this is also what Phil is trying to demonstrate in the route registration example on the 'Ambiguous Controller Names With Areas' post
routes.MapRoute(
"ARoute",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
routes.MapRoute(
"BRoute",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
Then you can refer to both routes like this:
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" });
}
did you try
helper.RouteUrl("ARoute",
new { controller = "Home", action = "Index", Area = "YourArea" });
精彩评论