zoukankan      html  css  js  c++  java
  • 路由

    一、路由,就是用来分析、拆解Url的。

    二、默认路由,{Controller}/{action}/{id},如果修改路由,Controller和Action这两个名称不能变,id可以改写成任意的,比如id写成aa,那么在控制器的方法中传入的形参名称也只要写aa就行了。

    如{Controller}/{action}/{id}对应

    1 public ActionResult Test1(int id)
    2 {
    3   return Content("id=" + id);  
    4 }

    {Controller}/{action}/{aa}按顺序一一对应

    1 public ActionResult Test1(int aa)
    2 {
    3   return Content("aa=" + aa);  
    4 }

    三、注意路由规则的url中不能包含?,不能以/或者~开头,所以不能匹配QueryString,例如

    url:"{controller}/{action}/{aa}?username={username}"

    这样是不行的。

    四、url:"{controller}/{action}/{name}/{id}"这样的路由规则,就匹配如下这样的Action

    1 public ActionResult Test2(string name,int id)
    2 {
    3       return Content("name=" + name + ",id=" + id);  
    4 }

    注意的是形参的名称name和路由规则中的name名称必须一致,形参名称Id和路由规则中的id名称也要保持一致。

    五、配置多个路由规则

    匹配多个路由规则,就从上往下匹配,匹配到一个就结束,不再往下匹配。

    六、用路由生成url

    有如下路由规则:

    1 routes.MapRoute( name: "Default", url: "{controller}/{action}" ); 
    2 routes.MapRoute( name: "Default2", url: "{controller}/{action}/{*aa}" ); 3 routes.MapRoute( name: "Default3", url: "{controller}/{action}/{id}/{name}" );

    在cshtml中插入

    Url.RouteUrl("Default3", new { controller="Yes",action="Test",id=5,name="rupeng"})

    那么在页面中会显示

    /Yes/Test/5/rupeng

    说明:如果在Url.RouteUrl("Default3", new { controller="Yes",action="Test",id=5,name="rupeng"}

    )中加入属性,而这个路由规则中没有匹配的,那么页面中显示会以QueryString的形式显示。

    例如在cshtml中插入

    Url.RouteUrl("Default3", new { controller="Yes",action="Test",id=5,name="rupeng",age=16,height=182})

    那么在页面中会显示

    /Yes/Test/5/rupeng?age=16&height=182
  • 相关阅读:
    汉字转拼音的Java类库——JPinyin
    更改MySQL数据库的编码为utf8mb4
    mysql 添加列,修改列,删除列
    mysql解决datetime与timestamp精确到毫秒的问题
    mysql之数据库备份与恢复
    linux常用命令集锦
    如何更改linux文件目录拥有者及用户组
    linux 查找文件命令
    关于servlet中重定向、转发的地址问题
    jQuery的validation插件(验证表单插件)
  • 原文地址:https://www.cnblogs.com/dotnetHui/p/7979326.html
Copyright © 2011-2022 走看看