asp.net-mvc – 高级ASP路由教程和示例
|
我最近似乎遇到的一个主要障碍是围绕我一直在开发的一些基于MVC的应用程序的一些更复杂的路由要求.
我想要找到的是一套完整的教程,用于从基本(控制器/动作/ id)到高级的所有路由. 我称之为高级路由的一个例子是: / blog / year / month / day / title – 将映射到控制器:博客和操作:发布和作为参数:年,月,日和标题 / blog / title – 将映射到控制器:博客和操作:发布和作为参数:标题 / title – 将映射到控制器:博客和操作:发布和作为参数:标题 我可以使用数据库将每个可能的集合映射到全局中的显式路由,但这似乎正在使得路由引擎路由到正确的位置.我宁愿定义规则一次. 解决方法我不明白,为什么不能将它们中的每一个定义为单独的路径,在需要时使用正则表达式.例如,区分/ blog / year / month / day / title和/ blog / title.这些集合中的每一个都是一个单独的案例,您需要告诉MVC如何处理每个集合.您可以通过在Global.asax.cs文件中定义规则一次来执行此操作: 对于第一种情况:/博客/年/月/日/标题 routes.MapRoute(
"Blog Full Route",// Route name
"blog/{year}/{month}/{day}/{title}",// URL with parameters
new {controller = "blog",action = "post"},// Defaults
new {year = @"d+",month= @"d+",day = @"d+"} // Constrain parameters with RegEx patterns
);
对于第二种情况:/ blog / title routes.MapRoute(
"Blog Title Route",// Route name
"blog/{title}",// Defaults
);
对于最后一种情况:/ title routes.MapRoute(
"Title Route",// Route name
"{title}",// Defaults
);
诀窍是将这些路线按照这个确切的顺序排列,底部最不具体.更改顺序将导致使用错误的路由(特别是在最后两个中).如果使用第二种情况切换最后一种情况,则blog / SomeTitle类型的URL将路由到以博客作为标题的帖子操作. 无论何时为某事创建路线,请记住以下几点: >使用RegEx约束路由参数 一些很好的教程: > http://www.asp.net/(S(pdfrohu0ajmwt445fanvj2r3))/learn/mvc/tutorial-24-cs.aspx (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Sitecore 6.6中的静态视图渲染
- asp.net-mvc – HttpPostedFileBase总是在ASP.NET MVC中返回
- ASP.NET C#SignalR流到客户端
- asp.net-mvc-3 – 更改ASP.NET MVC 3文件夹结构
- 有没有办法检查是否定义了VBScript函数?
- asp.net-mvc – 如何使用jquery处理JSON?
- asp.net – 应用程序池和工作进程线程之间的关系是什么?
- asp.net – 类似于CMS的Web应用程序帮助框架?
- asp.net-mvc – 在ASP.NET MVC中,response.redirect如何工作
- asp.net-mvc – Html.CheckBox即使模型值为true也不进行检查
- asp.net-web-api – Web Api:找不到System.Net.
- asp.net-mvc-3 – 当HTTP响应状态设置为400时,II
- asp.net-mvc – 命中错误:在解析器和自定义注册
- Asp:文本框与输入文本(PHP开发人员学习ASP)
- asp.net-mvc – asp.net MVC应该是View-Model封装
- asp.net-mvc – 从asp.net POST动作方法更新nhib
- asp.net – 我想列出我的下拉列表中的所有国家/地
- 如何关闭ASP.NET必需的字段验证器“丢失焦点”行
- 本地化 – 了解MVC6 RC1中的资源文件
- 当ASP.NET验证失败时,更改文本框的css类
