有谁知道如何在ASP.NET MVC3中配置区域。
我在here读了一篇关于区域的文章。
但那篇文章并非基于MVC3。
在MVC3中,MapRootArea
中没有名为RouteCollection routes
的函数,可在Global.asax中找到
routes.MapRootArea("{controller}/{action}/{id}",
"AreasDemo",
new { controller = "Home", action = "Index", id = "" });
当我使用MVC3创建一个新区域时,我得到了一个继承自AreaRegistration
的区域类,如下所示:(这里的博客是区域名称)
public class BlogsAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Blogs";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Blogs_default",
"Blogs/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
有谁请帮助我如何在MVC3中配置区域。任何类型的链接也会有所帮助。
答案 0 :(得分:40)
右键点击您的网络项目,然后选择添加 - >区域...然后键入区域的名称,Visual Studio将负责其余的生成所有必需的类。例如,区域注册可能如下所示:
public class AreasDemoAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "AreasDemo";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"AreasDemo_default",
"AreasDemo/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
并且Application_Start
Global.asax
只需要AreaRegistration.RegisterAllAreas();
:
{{1}}
答案 1 :(得分:5)
您可以在根目录和区域中使用相同的控制器名称,只需定义它即可。
在你的global.asax中,添加routes.maproute的最后一行,如下所示
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults
new[]{"YourNameSpace.Controllers"}
);
另外,在你的ares / ????? AreaRegistration.cs文件中添加控制器的名称
context.MapRoute(
"Membership_default",
"Membership/{controller}/{action}/{id}",
new { controller= "Home", action = "Index", id = UrlParameter.Optional }
);
答案 2 :(得分:1)
请在下面找到如何在mvc。
中配置区域的图片