【发布时间】:2015-04-18 10:42:05
【问题描述】:
我正在使用区域和属性路由来设置网站的网址。我的AreaREgistration 是
public class AreaNameAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "AreaName";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.Routes.MapMvcAttributeRoutes();
}
}
在控制器中我设置了区域
[RouteArea("AreaName",AreaPrefix="")]
这允许我将index 操作设置为
[Route("Home")]
带有网址
localhost:00000/Home
这个工作在整个站点中都可以找到,期望默认根 localhost:00000/
我收到错误消息
参数字典包含参数的空条目 'rememberMe' 的不可为空的类型
它似乎想将该区域的默认控制器设置为位于同一区域的AccountController。
我尝试使用对我添加的 stackoverflow 中类似问题的建议来解决此问题
context.MapRoute(
"AreaName_default",
"{controller}/{action}/{id}",
new {controller="Home" ,action = "Index", id = UrlParameter.Optional }
);
但是,如果我这样做,我会收到一条新的错误消息
名为“AreaName_default”的路由已在路由集合中。 路由名称必须是唯一的。参数名称:名称
是否可以使用路由属性和区域将默认根 url 设置为特定操作?
【问题讨论】:
标签: asp.net-mvc routing