• 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的一些理解,也有可能是别的。
  • 相关阅读:
    同一内网不能网段ping 不通
    mysql 5.6.33 重置密码后报错
    设置tomcat内存设定
    python 取两数的百分比
    cache buffers
    登录到mysql查看binlog日志
    mysqlbinlog 查看日志时发生报错
    find 查找文件 -exec 然后压缩 查看tar包的内容
    zip 压缩文件 unzip查看zip压缩包内的内容
    react-native 完整实现登录功能
  • 原文地址:https://www.cnblogs.com/52XF/p/3740329.html
Copyright © 2020-2023  润新知