asp.net-mvc-2 – 电子商店中类别名称的MVC 2.0动态路由
发布时间:2020-12-16 03:54:12 所属栏目:asp.Net 来源:网络整理
导读:我目前正在使用ASP.NET MVC 2.0开发电子商店.我已经完成了大部分工作,但是一直困扰着我的部分是路由.我要这个: http://mystore.somewhere/my-category-1/ 到目前为止,我已经能够使用以下方法解决它: routes.MapRoute( "Category","{alias}/{pageNumber}",n
我目前正在使用ASP.NET MVC 2.0开发电子商店.我已经完成了大部分工作,但是一直困扰着我的部分是路由.我要这个:
http://mystore.somewhere/my-category-1/ 到目前为止,我已经能够使用以下方法解决它: routes.MapRoute( "Category","{alias}/{pageNumber}",new { controller = "Categories",action = "Browse",pageNumber = 1 }); 但是,这比我想要的要多得多. 在阅读了本网站的一些问题和答案之后,我发现了一个特别有趣的解决方案,需要我以编程方式为每个类别注册一条路线,所以本质上我会做的 foreach (var c in Categories) { routes.MapRoute( c.Name,"{" + c.Alias + "}/{action}/...anything else",new { controller = "Category",action = "Index" }).RouteHandler = new CateegoryRouteHandler(c); } 你怎么看?这是一个好主意吗?我可能会有大约200个类别,是否在路由表中有太多“路由”?你会建议另一个解决方案? 谢谢. 问候, 解决方法
具有动态约束的单个路由可能是更优雅的解决方案.只需设置一个仅与您的类别匹配的约束.
routes.MapRoute( "Category",alias = UrlParameter.Optional,pageNumber = 1 },new { alias = new CategoryMatchConstraint() } ); public class CategoryMatchConstraint : IRouteConstraint { public bool Match( HttpContextBase httpContext,Route route,string parameterName,RouteValueDictionary values,RouteDirection routeDirection ) { var category = values.Values[parameterName] as string; if (string.IsNullOrEmpty(category)) { return false; } using (var db = new MyDatabaseContext()) { return db.Categories.Any( c => c.Name == category ); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何在ASP.NET MVC应用程序中实现搜索功能
- asp.net-membership – 为什么Membership.GetUser()尝试创建
- 如何从asp.net调用Windows服务
- asp.net-mvc – 与ASP.Net MVC混淆
- asp.net – web部署工具2.1和web部署3.5有什么区别?哪一个
- 如何创建使用asp:ListItem列表作为子控件的ASP.NET用户/服
- .net – 修改MVC 5中的密码长度
- asp.net-core – 带有ASP.NET身份3的JWT承载令牌
- 如何在ASP.NET WebForm中使用Ninject注入依赖项?
- ASP.NET MVC:什么时候设置Thread.CurrentThread.CurrentUI
推荐文章
站长推荐
- asp.net-mvc – 默认模型绑定抛出“没有为此对象
- asp.net中的Html.ActionLink MVC对象值格式错误
- ASP.NET 2.5前缀ctl00和ASP.NET 4不是前缀ctl00
- asp.net-mvc – 确定是否在布局页面中调用了Rend
- asp.net – 如何使这个更好的代码和更优化
- asp.net-mvc – WebApi是否支持开箱即用的applic
- asp-classic – 如何在经典的asp中制作一个预防s
- asp.net-core – 实体框架核心 – 相当于IN子句
- ASP.Net MVC – 从HttpPostedFileBase读取文件,而
- asp.net-mvc – MVC授权属性HttpUnauthorizedRes
热点阅读