分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

mvc5.0-路由

发布时间:2023-09-06 01:13责任编辑:苏小强关键词:暂无标签
  • Asp.net MVC 利用RouteTable.Routes静态对象将所有的路由规则保存下来,当浏览器传过来http请求时,就会比对RouteTable.Table来决定使用MvcHander来处理还是使用其他的HttpHander来处理。
  • 在Asp.netMVC4以前的版本中URL Routing是注册在Global.asax中的。 -定义路由时可以使用Namespaces命名空间,可以让网址路由在对比时指定命名空间进行对比:
route.MapRoute(name:"About",//名称必须唯一url:"{action}/{id}",default:new{ ?controller="Home", ?action="Index", ?id=UrlParameter.Optional ?}),constraints:new {action="(About|contact)"},//利用regex语法同时允许About和contactnamespaces:new[]{"WebApplication1.Controllers"}//限制只有命名空间相同的才会比对成功
  • 可以使用RouteTable.Routes.GetVirtualPathForArea( Request.RequestContext, new RouteValueDictionary(new page=1 )).VirtualPath; 来获取当前的网址,使用新增路由值字典(RouteValueDictionary)的方式增加额外的路由值(即URL参数)
  • 直接获取RouteData内的值
  1. 在View内获取Route Value: @(ViewContext.RouteData.Values["action"]); @ViewContext.RouteData.Values["controller"];
  2. 在Controller内获取Route Value:
    var currentAction=RouteData.Values["action"];
    var currentController=RouteData.Values["controller"];
  3. 在类内获取Route Value(这里用到的时HtmlHelper)
    public static string GetCurruentControllerName(this HtmlHelper helper)
    {return (string)helper.ViewContext.RouteData.Values["controller"];}
  • 如何调试网站
  1. 使用Route Debugger 2.0,它是属于项目等级的程序包,可以使用NuGet搜索Route Debugger 程序包并安装,可以查看当前网页匹配的具体路由;
  2. 使用Cobisi Routing Assitant Assistant,它是属于VS的扩展功能,此程序包已分析出整个项目内的网址路由,包括RouteConfig、Area、Attribute Routing,当然也可以使用Cobisi Routing Assistant->URl Mapper命令来测试网址的设置是否和预想的一样。
  • Area-提供了模块化的功能主层与Area相互调用的方式:当项目中创建了area之后,开发者最好在调用时加上area,如下:
@Html.ActionLink("前往AD页面","Index",//action名称new { controller=""AD",//Controller名称 area="Admin"//Area名称})<a href="@Url.Action("Index","AD",new {area="Admin"})">前往AD页面</a>

如果需要从area导向到主层的Controller,就没办法给予Area名称,而且MVC内建的机制会判断当前的Controller和Area,若没有给出,会默认使用当前的Area,若要回到主层就在Area名称指定空字符串即可:

@Html.ActionLink("前往主层About页面","About",new { controller="Home",area=""})<a href="@Url.Action("About","Home",new {area=""})">前往主层About页面</a>

mvc5.0-路由

原文地址:http://www.cnblogs.com/cby-love/p/7583183.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved