博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net MVC 路由
阅读量:6907 次
发布时间:2019-06-27

本文共 1421 字,大约阅读时间需要 4 分钟。

  在winFrom上面我们会用一个重写Url的组件来实现伪静态,来提供好的体验和SEO等。而现在我们希望URL能够满足

    1.容易记忆和拼写

    2.简短,反映出站点结构

    3.用户可以通过移除URL的末尾达到更高层的结构 

用传统的方式我们很难达到上面的要求,而路由解决了这些问题。和重写URL不同的是,重写只是将请求的URL进行了转发,而路由接管了整个URL的生命周期。 路由主要是用来匹配传入的请求,并将请求映射到控制器操作,构造传出的URL等。

在MVC中有这样的一段路由代码

public static void RegisterRoutes(RouteCollection routes)        {            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");            routes.MapRoute(                name: "Default",                url: "{controller}/{action}/{id}",                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }             );                    }
其中

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");表示忽略能够匹配到的路由

在下面的路由中定义了一个名为Default的路由 制定了默认的

controller = "Home", action = "Index", id = UrlParameter.Optional

 

我们自己来定义一段路由,我希望有一个list/2012/1/1这样的年月日的路由 ,于是我在路由表里面加上一下代码:

routes.MapRoute(name: "List",            url: "List/{year}/{month}/{day}",            defaults: new { Controller="User",action="index", year=2012,month=1,day=1 }            );

设置路由到User控制器下的index方法上   ,然后在UserController的index方法如下:

public ViewResult Index(int year,int month,int day)        {            ViewBag.date = year + "-" + month + "-" + day;            return View();        }

将年月日输出到页面上在View /index.cshtml上加上

@ViewBag.date

运行得到了希望的答案

  

        

        到这里就大概知道了路由是怎么写的。要探究其中的远离还需要下一番功夫才行,要注意的是定义路由的时候最好指定Controller action 这样可以得到自己想要的路由结果。其实只要结构简单默认的路由也是够用了的。路由需要考虑到路由二义性的问题,一条url能够被两条以上的路由匹配是我们需要规避的。

转载地址:http://tmrdl.baihongyu.com/

你可能感兴趣的文章
Ado.Net Helper
查看>>
OpenWrt Web界面修改及功能实现实例说明
查看>>
java内存溢出的解决思路
查看>>
hibernate(六)一对一映射
查看>>
map遍历
查看>>
android结合Jenkins使用V2签名
查看>>
栏目添加缩略图
查看>>
[BZOJ 1221][HNOI2001]软件开发(费用流)
查看>>
用户注册流程分析
查看>>
6.1Python数据处理篇之pandas学习系列(一)认识pandas
查看>>
搞小程序遇到的问题及解决方案(持续更新)
查看>>
jquery ui tabs
查看>>
个人作业(alpha)
查看>>
ELK集成Log4net 重写一个TcpAppender
查看>>
【转载】win7下IIS的安装和配置图文教程
查看>>
一.c#概述,c#语言及其特点;c#与.net框架关系
查看>>
关于更新发布CSS和JS文件的缓存问题
查看>>
threading 多线程
查看>>
每个Android开发者必须知道的内存管理知识
查看>>
常用的PHP知识记录
查看>>