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.config中启用SmtpClient的SSL
- asp.net – 如何使用转换语法更改web.config设置?
- asp.net-mvc – Kendo Grid Edit InLine Custom Validation
- asp.net – 如何将两个模型传递给一个View
- asp.net – IIS URL重写模块url为小写
- asp.net-mvc – MVC – 编辑对象列表
- asp.net – 获取当前以aspnet mvc成员身份登录的userID
- asp.net – 使用GhostScript将PDF转换为服务器上的图像集合
- asp.net-mvc – 在活动的SignalR连接期间更改用户身份 – 如
- asp.net – StyleBundle索引超出了数组的边界
- asp.net核心 – ASP.NET核心中的基本身份验证
- asp.net-mvc-4 – 防伪标记和Web测试
- asp.net – Visual C#中事件的下拉列表在哪里?
- asp.net-mvc – 如果我使用ASP .NET MVC 3,我可以
- asp.net – 元素 system.webServer’有无效的chi
- asp.net-mvc – 在ASP.Net MVC视图中显示/隐藏链
- asp.net-mvc – 如何在ASP.NET MVC中执行辅助操作
- asp.net-mvc – MVC与WebForms
- asp.net-mvc – 使用jQuery getJson发送list/arr
- asp.net – 如何防止Azure网站进入睡眠状态?
