asp.net-mvc-routing – ASP.NET MVC区域:如何隐藏URL中的“区域”名称?
|
当运行具有博客区域和博客控制器的 MVC 2 Areas example时,URL如下所示: http://localhost:50526/Blog/Blog/ShowRecent格式: RootUrl / AreaName / ControllerName / ActionName 刚刚发现MVC区域,它似乎是组织代码的好方法,即为每个部分创建一个区域,在我的情况下,每个部分都有自己的控制器.这意味着每个AreaName = ControllerName.这样做的效果是Url例如/ Blog / Blog /上面的双AreaName / ControllerName路径 没有对路由的完全清楚的了解,我如何设置路由不显示AreaName? 编辑: 我试图减少路由的工作量,因为它们似乎会相互影响(即需要特定的排序),并可能导致严重的头痛:-)在将现有的Webform应用转换为MVC时,我已经转换了几个核心部分,它们每个都有一个控制器和大量的视图/动作,尽管大多数数据访问是代码在组件中,Model / ViewData类的数量正在增长…我正在根模型/视图中创建子文件夹这些部分(或区域)的文件夹,并希望创建区域将以相同的方式工作,除了组织代码(使用覆盖该区域的基本路线) 解决方法在每个区域的文件夹中,您将看到一个* AreaName * AreaRegistration.cs文件.这是存储区域路线规则的地方.默认情况下,当它们生成时,它们将包含所有其他的区域名称.问题是:如果从路由中删除区域名称“文件夹”,路由将捕获所有“标准”{controller} / { action} / {id}请求.这显然不是你想要的要克服这一点,您可以根据该路由中存在的控制器名称,在路由上添加正则表达式过滤器.缺点?您将无法在应用程序中使用相同名称的两个控制器(至少不使用标准路由.您可以随时想到不同的路由来访问它们)) 结束了这个结构:
你应该是这样的: context.MapRoute(
"Blog_default","{controller}/{action}/{id}",new { action = "Index",id = UrlParameter.Optional },new { controller = "(Blog|Feed)" }
);
在UserAreaRegistration.cs中: context.MapRoute(
"User_default",new { controller = "(User)" }
);
在Global.asax.cs中: public static void RegisterRoutes(RouteCollection routes)
{
context.MapRoute(
"Default",new { controller = "Home",action = "Index",id = UrlParameter.Optional }
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
请注意,在global.asax地区注册首先! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 尝试将asp.net web发布到Azure时,Visual St
- asp.net-mvc – ASP.NET MVC 2和使用WIF(Windows Identity
- asp.net – MVC 6 WebAPI返回序列化的HttpResponseMessage而
- asp.net-mvc – ASP.Net MVC 3 – JSON模型绑定到数组
- 当通过ASP.NET成员资格检查用户角色时,SemaphoreFullExcept
- asp.net-web-api – WebAPI 2.2不支持substringof函数
- asp.net-mvc – 实体框架5迁移:设置初始迁移和数据库的单个
- ASP.NET:存储应用程序设置的位置?
- asp.net-core – 从与xproj相同的解决方案引用csproj
- ASP.NET MVC与Web客户端软件工厂(WCSF)
- asp.net – 它是老式的使用id的查询字符串吗?
- asp.net-mvc-2 – 为什么我们在ASP.NET MVC中使用
- asp.net-mvc – 如何找出在MVC3中调用我的视图的
- asp.net – 编辑条目时的实体框架DateTime格式
- 使用ASP.NET MVC4 jquery/javascript捆绑
- asp.net-mvc – 如何在MVC中显示图像
- asp.net-mvc-3 – 当两个网格位于同一页面时进行
- asp.net-core – 我需要在ASP.NET Core for Cach
- asp.net-mvc – 禁用为特定提交按钮启用不显眼的
- “经典”ASP.NET页面和Microsoft MVC可以在同一个
