zoukankan      html  css  js  c++  java
  • MVC路由规则进一步了解

      本周由于工作需要,接触了PetaPoco(一个小型的ORM-框架)和ExtJS,这个项目框架是别人写好的,用的是MVC,我写的MVC程序一般控制器和视图都是在一个类库下面的,但是作者是把MVC中的控制器和视图分别写着两个类库当中的,这种写法我第一次见,所以我很想知道控制器是怎么和视图进行关联的。下面我简单说说我理解到的内容。

      一般的路由规则如下:

     routes.MapRoute(
                    name: "Default_HasId_Html",// 路由名称
                    url: "{controller}/{action}/{id}.html",// 带有参数的URL
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }// 参数默认值
                    );



    由于我写的程序控制器和视图都是在一个类库下面的,所以这种方式的路由就能匹配我所需要的一切,但是当他们不在一个类库下面的时候,这种写法就不能匹配到了,寻找解决
    办法,原来在路由规则里面还有
    另外一个参数
    namespace (优先匹配的命名空间),
    语法:
    1 routes.MapRoute( 2 name: "MyRoute", 3 url: "{controller}/{action}", 4 defaults: new { controller = "Home",action="index"}, 5 namespaces: new string[] { "Course.Controllers" } 6 );

    namespace是一个字符串数组,可以指定多个命名空间,注意:namespace是指定优先查找的命名空间,而不是指定查找的命名空间,当在指定优先查找的命名空间中找不到时还是会去其它的命名空间查找。

    相信看到这里大家都明白了,如果控制器和视图不再同一个类库下面,要想他们正常访问,我们就得在路由规则里面指定优先查找的命名空间。

    好了,今天就简单的写一点,下一篇可能是关于PetaPoco的一些理解,也有可能是别的。
  • 相关阅读:
    Eclipse中自动提示的方法参数都是arg0,arg1的解决方法
    eclipse 下找不到或无法加载主类的解决办法
    将博客搬至CSDN
    java接口中定义成员变量
    重写与重载
    多位数每一位个系数:个位num%10;十位num/10%10.......
    输出 n=6 的三角数字阵(JAVA基础回顾)
    二维数组的遍历之查漏补缺
    For循环打印正三角,倒三角,菱形
    JAVA的continue用法
  • 原文地址:https://www.cnblogs.com/52XF/p/3740329.html
Copyright © 2011-2022 走看看