创建测试工程 分别在vs2013和vs2015中创建mvc项目,并创建First.Second.Three三个Area,每个Area下面创建一个HomeController和Index视图.修改RouteConfig.cs中的路由注册方法,添加命名空间 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.M…
一.区域路由 为了管理网站中大量的文件,在ASP.NET MVC 2.0版本中引入了一个新概念:区域(Area). 有了区域以后,可以让我们的项目不至于太复杂而导致管理混乱.每个模块的页面都放入相应的区域内进行管理很方便.看下面的截图: 上图中有两个模块:一个是User模块,另一个是Product模块,所有关于这两个模块的Controller.Model.View都放入各自的模块内.而且从上图中可以看出:区域的功能就类似于一个小的MVC项目,虽然项目小,但是有自己的控制器.模型.视图和路由设置.…
写博客原因:添加了区域(用作后台)后,报错: An unhandled exception occurred while processing the request.AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied: CompanyHome.Controllers.HomeController…
客户端发出一个http请求时,nginx收到后会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求. server_name与host匹配优先级顺序如下: 能匹配上的情况优先级顺序: 1.完全匹配 2.通配符在前的,如*.xxxx.com 3.在后的,如aaa.bbb.* 4.正则匹配,如~^\.aaaa\.bbb\.com$ 如果都不匹配的情况下,按下面两种方式处理,优先级如下: 1.优先选…
Visual Studio不论是2013版本还是2015版本要自动编译都需要添加扩展. 添加扩展的方法,路径“工具”->“扩展和更新”,在打开的窗口“搜索”你需要的扩展根据提示“下载”和“安装”. 首先,来看一下vs2013的扩展:Web Essentials 你不想被编译的scss文档在文件名的前面添加一个下划线就行了.没有添加下划线的文件会被自动编译为css文件. 再来,vs2015的扩展:Web Compiler 有人会问为什么不用vs2013中的“Web Essentials”,我来看一…
问题描述:装好VS2013 专业版 for Update5不知怎么弄的,突然新建项目没有了解决方案,于是各种折腾,最后终于解决了! ============================================ 解决办法:[工具]-[选项]-[项目和解决方案],把右边的对勾都选上,懒得试哪个,都选上,结果真的回来了,给其他有同样问题的人作个参考. 如下图所示: 特此记录,备忘........…
VS2013和VS2015中MVC 区域路由匹配顺序相反   创建测试工程 分别在vs2013和vs2015中创建mvc项目,并创建First.Second.Three三个Area,每个Area下面创建一个HomeController和Index视图.修改RouteConfig.cs中的路由注册方法,添加命名空间 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.a…
1.路由在进行匹配时,会默认匹配第一个路由信息 2.路由规则的{control}和{action}时不能改变的 3.路由规则可以中间字符可以随便定义,但是{control}和{action}必须使用一个分隔符 4.路由约束:url:"{control}/{action}/{id}"和url:"{control}/{action}/{name}" --|:id约束:new{id=@"\d"} 要求必须是数字 --|:id约束:new{name=&q…
authour: chenboyi updatetime: 2015-05-03 08:26:30 friendly link:   目录: 1,思维导图 2,AreaRegistration类的RegisterAllAreas方法 3,区域文件夹Areas 4,一个继承AreaRegistration的子类 5,区域下的Controllers和Views文件夹 6,将区域中的控制器单独存放到某个类库中进行管理 1,思维导图:…
我们在ASP.NET Core MVC中如果要启用Area功能,那么会看到在Startup类的Configure方法中是这么定义Area的路由的: app.UseMvc(routes => { routes.MapRoute( name: "subAreaRoute", template: "{area:exists}/{subarea:exists}/{controller=Home}/{action=Index}/{id?}"); routes.MapRo…
1.全局约定路由 这种方式配置优先级比较低,如果控制器或者方法上标记了特性路由那么优先走特性路由. 当建立好一个mvc项目里,路由都是默认配置好的. 如果建立的是空项目那么需要手动配置: 1.需要在ConfigureServices方法中添加mvc服务 services.AddMvc(); 2.在Configure添加mvc中间件: app.UseMvcWithDefaultRoute(); //添加mvc中间件并使用默认路由配置 这里添加mvc中间时使用的是默认的路由配置,默认的路由配置就是跟…
上一篇 说到了路由事件注册以及路由表的生成, 前面 也解析到了, 管道事件的建立, 那么接下来, 肯定就是要调用执行这些事件了, 这些就不表了, 我已经得到我想要的部分了, 接下来, 在执行这些管道事件的时候, 肯定就会执行到之前 UrlRoutingModule注册的方法. 接下来, 就看一下, 这个事件干了些什么. 一.OnApplicationPostResolveRequestCache 方法 private void OnApplicationPostResolveRequestCac…
写了个扩展,分享给需要的朋友. 0x01 使用方法 在mvc区域中的{xxxx}AreaRegistration.cs文件中,如ProjectsAreaRegistration.cs <pre> <code> using Dsvisual.Extensions; namespace Dsvisual.WebApp.Areas.Projects{    public class ProjectsAreaRegistration : AreaRegistration    {     …
在ASP.NET MVC中使用区域来方便管理controller和view 在mvc架构中,一般在controllers和views中写所有控制器和视图, 太多控制器时候,为了方便管理,想要将关于person的所有控制器放在一个文件夹里面,这样就容易查看和管理. 这时候在WEB下面创建一个Areas文件夹.(和Controllsers文件夹同级) 然后在Areas里面右键选择新建区域. 会自动创建一个路由信息,和web.comfig还有controllers文件夹等. 这时候就可以很清晰的管理和…
前言 前两篇文章主要总结了CMS系统两个技术点在ASP.NET Core中的应用: <ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存> <ASP.NET Core 中的SEO优化(2):中间件中渲染Razor视图> 而本篇文章,继续介绍另一个技术点:自定义路由匹配和生成. 背景 在MVC5时代,默认的路由可能就是简单的约定/{controller}/{action}/{id},第一节对应控制器(Controller)名,第二节对应操作(Action)名,…
公司的接口,前端框架是MVC,路由里面对接口配置的路径是以api结尾的,结果之间在iis上访问不了,研究了半天成功了,整理下,以免下次再忘. 路由配置RouteConfig routes.MapRoute( name: "Register", url: "register.api", defaults: new { controller = "Register", action = "Index", id = UrlParam…
本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定义格式的路由时,有几点要注意: 1.arg1/arg2/arg3 的部分应该在 routes.MapRoute 中设置默认值UrlParameter.Optional,才允许同时访问只传部分值比如 只传 arg1,或者 arg1/arg2 这样的路径 2.在设置默认值的情况下,如果出现 http:/…
Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径 我们要实现 通过路由 匹配出 博客地址 和博客文章地址 例如下面的这两个地址 //http://www.cnblogs.com/maijin///http://www.cnblogs.com/maijin/archive/2009/01/12/1374473.html 通过路由配置 让控制器能处理 用户的不同提交 第一步 写默认路由规则 public static void RegisterRoutes(RouteCollect…
一,django路由匹配规则的本质是通过正则表达式对用户的url进行匹配. 1,r 是正则表达式中防止转义的符号,例如在python/n代表换行,加上r就不换行了. 2,$ 正则表达式中表示以什么什么结束,在这里就是以2003/结束,以其他字符结束则不匹配 3,^ 正则表达式中表示以什么什么开始,在这里表示以articles 开头,以其他开头则匹配不上. 4,(?p)代表分组,<month>相当于字典中的键值,[0-9]{2}相当于字典中的value. 5,这个路由是静态路由,就是固定得,路由…
# 一.执行流程 首先我们构建一个简单http server: ```go package main import ( "log" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello world")) }) log.Fatal(http.Liste…
MVC的强大之处之一当然是路由,这是几年前一位牛人给我说过的话,本人深感认同.今天就再次探究. 首先新建一个空的MVC项目,我们会发现在RouteConfig类中存在一个默认的路由配置,通常我会在这里的路由中添加一个命名空间,以防止路由配置冲突 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home&quo…
一.URL 生成 接着上篇讲MVC的路由,MVC 应用程序可以使用路由的 URL 生成功能,生成指向操作的 URL 链接. 生成 URL 可消除硬编码 URL,使代码更稳定.更易维护. 此部分重点介绍 MVC 提供的 URL 生成功能,并且仅涵盖 URL 生成工作原理的基础知识. IUrlHelper 接口用于生成 URL,是 MVC 与路由之间的基础结构的基础部分. 在控制器.视图和视图组件中,可通过 Url 属性找到 IUrlHelper 的实例. // // mvc 框架的Controll…
 ASP.NET Core MVC 路由是建立在ASP.NET Core 路由的,一项强大的URL映射组件,它可以构建具有理解和搜索网址的应用程序.这使得我们可以自定义应用程序的URL命名形式,使得它在搜索引擎优化(SEO)和链接生成中运行良好,而不用关心Web服务器上的文件是怎么组织的.我们可以方便的使用路由模板语法定义路由,路由模板语法支持路由值约束,默认值和可选值. 基于约束的路由允许全局定义应用支持的URL格式,以及这些格式是怎样各自在给定的控制器中映射到指定的操作方法(Action).…
在MVC之前,ASP.NET假设请求的URL与服务器上的文件之间有关联,服务器接受请求,并输出相应的文件.而在引入MVC后,请求是由控制器的动作方法来处理的.为了处理URL,便引入了路由系统. 首先我们来创建一个基础项目用来演示.代码如下: public class HomeController : Controller { public ActionResult Index() { ViewBag.Controller = "Home"; ViewBag.Action = "…
前言 这一节我们开始讲讲基础的东西也就是如题目所言,个人觉得当学习或者利用MVC时,必须得知道最新迭代版本新增了什么,至少得知道MVC 3.MVC 4或者MVC 5有什么区别,而不至于当利用到低版本时,出现某些特性就懵逼以至于认为是代码出了问题,这一点是很明确需要我们去了解. 话题 在MVC 5之前都是基于约定的路由,如下: routes.MapMvcAttributeRoutes(); routes.MapRoute( name: "Default", url: "{con…
自定义路由规则的要求,小范围写在前,大范围写在后.路由规则可以注册多条,路由规则的名称不能重复路由规则有顺序,并且按照顺序进行匹配,建议小范围写在前,大范围写在后.路由规则可以设置约束 即正则表达式路由规则匹配的控制器可以设置命名空间约束 routes.MapRoute( name: "NewShow", url: "{year}-{month}-{day}-{id}", defaults: new { controller = "News",…
新建项目 Main: 添加一个MVC5控制器并添加index视图:(HomeController) Views/Home/Index.cshtml内容: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title&g…
好久没写博文了,感觉最近好像少了点动力.唉!这回就看看这个MVC的路由. 说这个路由机制其实不是MVC里面特有的,ASP.NET里面本身就有的,只不过在WebForm里面一般比较少用,而在MVC里就是把原本的路由扩展了.原本对不知道单纯在ASP.NET里使用路由的详细情况,但自从看了蒋金楠老师的几篇文章之后知晓了,不过这篇还是讲MVC的路由而已. 路由的定义是位于根目录下的全局文件Global.asax.cs.里面有个RegisterRoutes方法 public static void Reg…