• MVC3 的路由Test


        最近一直在读公司之前写的网站代码,很为其中的路由机制头疼,如何实现控制层的抽离?如何实现全局路由和区域的配合?

        MVC中的控制器是MVC的中转站,请求通过控制器,或者通过访问Service层拿到数据,或者传给View层展示页面。而路由机制,则保证了请求如何找到相对应的控制器。

        1.首先说下如何实现MVC中控制器的抽离。

           第一步:创建MVC3空程序,RouteTest

           第二步:创建类库,RouteTest.Controllers

           第三步:在Controllers类库中,添加Home文件夹,在该文件夹下创建HomeController.cs文件,添加System.Web.Mvc引用

           代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web.Mvc;

    namespace RouteTest.Controllers.Home
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }
        }
    }

           第四步:在MVC程序的View文件夹下,添加Home文件夹,添加视图Index.cshtml

           第五步:在MVC程序的Global.asax文件的RegisterRoutes方法中添加如下代码:

    routes.MapRoute(
                    "Test",
                    "{controller}/{action}/{id}",
                    new { controller = "home", action = "index", id = UrlParameter.Optional },
                    new string[] { "RouteTest.Controllers.Home" });

             如图所示,           QQ截图20130110170745

             运行,访问localhost域名,获得index页面,即实现控制层的分离。

             注意:里面实现的根本是使用了路由的MapRoute方法

            2.如何实现全局路由和区域的配合

             全局路由写在global文件夹下,区域路由写在相对应区域的根目录下以AreaRegistration为后缀的cs文件。

             规则如下:

             先匹配global文件下的路由,如匹配则访问相对应控制器,如不匹配,则按顺序挨个查找区域路由,按照第一个匹配到的路由规则访问控制器

  • 相关阅读:
    Qt CheckBox选中与未选中的使用
    Qt Excel表格宽高的设置
    VTK三维重建 使用VTK读取DICOM,并动态输出
    VC++ VTK 读取序列CT图片三维重建
    VTK 读取序列图像
    Qt QWidget提升QVTKWidget
    ITK 介绍
    Qt QMainWindow中利用多个QDockWidget构成标签页tab || tabifyDockWidget
    Qt QDockWidget属性 setFeatures、setAllowedAreas
    Qt Designer中toolBar的allowedAreas属性
  • 原文地址:https://www.cnblogs.com/qiuyeyaozhuai/p/2855141.html
Copyright © 2020-2023  润新知