asp.net-mvc – ASP.NET MVC视图或URL应该有多少级别?
我还在学习ASP.NET MVC.使用webforms,我会创建一个新文件夹,我们称之为管理员.在那里,我可能有很多页面用于create_product,edit_product等.所以URL可能看起来像
http://somesite.com/admin/create_product.aspx.
但是对于MVC来说,它有点不同.我试图看看这是最好的方法. 做http://somesite.com/admin/product/create会对吗?或者应该只是http://somesite.com/product/create?如果我是第一种方式,我是否将所有内容都放在“admin”控制器中,还是应该将其分成“产品”控制器? 我知道这可能是主观或个人选择,但我想得到一些建议. 谢谢. 解决方法
ASP.NET MVC的一部分好处(更一般地说,.NET 3.5 SP1中所有ASP.NET共有的URL路由引擎)的特点是URL可以灵活配置为映射到您喜欢的任何文件夹/文件结构.这意味着在开始构建项目之后,比WebForms更容易修改URL.
针对您的具体问题: >一个管理员控制器与产品控制器 – 通常,指导是保持控制器的重点,以便更容易测试和维护.出于这个原因,我建议在每个对象类型(如Product)中使用单个控制器和CRUD操作.你的案例中的例子: /管理/产品/创建 / admin / product / edit / 34或/ admin / product / edit / red-shoes(如果名称是唯一的) 在任何一种情况下,Create,Edit,Deatils操作都将在ProductController中.您可能只有“管理操作”(如“创建”和“编辑”)的自定义路由限制其使用(并将“管理”文本添加到URL),然后详细信息操作将可供您站点的所有访问者使用. > [授权] – 只检查用户是否已登录 您甚至可以在站点中为“管理”视图创建自定义路由,并通过在URL路由中强制执行授权检查来限制对这些视图的访问,如下所示: routes.MapRoute( "Admin","Admin/{controller}/{action}",new { controller = "Product",action = "Index" },new { authenticated= new AuthenticatedConstraint()} ); AuthenticatedConstraint的位置如下: using System.Web; using System.Web.Routing; public class AuthenticatedConstraint : IRouteConstraint { public bool Match(HttpContextBase httpContext,Route route,string parameterName,RouteValueDictionary values,RouteDirection routeDirection) { return httpContext.Request.IsAuthenticated; } } 有关Stephen Walther博客的详细信息: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-web-api – Web Api的动态连接字符串
- asp.net-mvc – 使用Visual Studio和ASP.NET MVC加载时间非
- asp.net-mvc – 捕获文件名作为参数的MVC路由
- 依赖性 – 安装RavenDb Embedded的Nuget依赖性错误
- ASP.NET使用VB设置文件的路径
- Asp.net静态可变生命周期刷新和PostBack
- 初识ABP vNext(7):vue身份认证管理&租户管理
- asp.net-mvc – @:ASP.net MVC Razor是什么意思?
- asp.net – 如何在按下键盘上的“输入”键时将焦点转移到按
- 在asp.net中动态构建SiteMapPath