zoukankan      html  css  js  c++  java
  • MVC5干货篇,目录和路由

    1. MVC目录结构概述

    文件夹或文件

    描述

    备注

    /App_Data

    此文件夹用于存放私有数据,如XML,或者SQL Server ExpressSQLite的数据库文件,或其他基于文件的存储库

    IIS将不对此文件夹的内容进行服务,也就是说无法通过Web请求获取该目录的文件

    /App_Start

    此文件夹包含项目的一些核心配置设置,包括路由、过滤器、捆绑包、API等

     

    /Areas

    程序中区域的存放文件夹。可以把一个大型应用程序还分为一个个的小片段。

     

    /bin

    MVC程序编译好的程序集和任何被引用的且不包含在GAC全局程序集缓存中的引用程序集的存放位置

    IIS不对此目录进行服务。在解决方案管理器中看不到bin文件夹,需要显示所有文件才能看到。不需要把这个文件夹存储在源代码控制器(TFS)中。

    /Content

    用于放置MVC的静态内容,如CSS或图片等

    这是一个约定但是不是必须的。可以把静态文件放置在任意位置,只要你喜欢。

    /Controller

    用于放置控制器的文件夹

    这是一个约定。可以把控制器类放置在任何位置,因为他们都会被编译到同一个程序集中。

    /Models

    用于放置视图模型或者域模型类,域模型最好放置在一个专用的程序集中,而把视图模型放置在该文件夹中。

    这是一个约定,可以在任意位置上定义模型类。

    /Scripts

    用于存放Javascript库

    这是一个约定,可以存放在任意位置上。

    /Views

    用于存放视图和部分视图,通常他们关联的控制器命名的文件夹进行分组

    /View/Web.config文件阻止IIS对这些目录内容进行服务。视图必须通过动作方法进行渲染。

    /Views/Shared

    用于存放布局视图以及共享视图。

     

    /Views/Web.config

    这不是应用程序的配置文件。它包含有使视图能够与Asp.NET进行工作、防止IIS调用视图所需要的配置,还默认导入了视图的命名空间。

     

    /Global.asax

    这是全局ASP.NET应用程序类。他的后台代码类Global.asax.cs用于注册路由、WebAPI、捆绑包等配置。也涉及建立应用程序初始化、停机或出现未处理异常时需要运行的代码的地方。

     

    /Web.config

    应用程序的配置文件

     
    1. URL路由

    路由系统通常有两个功能:

        考察输入的URL,判断需要请求那个控制器和动作。

        生成输出URL。

    1. 注册一个简单的路由,需要在RouteConfig中定义好路由,然后在Global.asax.cs类中注册。如下图:

    1. 路由配置详解。如下图:

    1. 使用属性路由
      1. 属性路由是MVC的一个重要补充,但是它违反了MVC的分离关注点原则。默认的情况下,属性路由是被禁用状态。

      开启属性路由的方式如下:

      1. 使用Route属性标记对动作方法配置路由规则,如下图:

        Route属性标记支持的参数如下表:

    名称

    描述

    Name

    需要使用的路由配置的名称

    Template

    定义一个模式,用于匹配以动作方法为目标的URL

    1. 使用RoutePrefix属性注解定义控制器中所有路由的普通前缀,如图:

    作者:smallprogram
    感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力。欢迎转载!另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!
     
    分类: Asp.NET MVC
  • 相关阅读:
    批处理详细教程1
    “无后端”的web应用开发模式
    给Notepad++换主题
    Github for Windows使用图文教程
    MongoDB操作数据库的几个命令(自己用)
    P2P实现的原理
    ios中摄像头/相册获取图片压缩图片上传服务器方法总结
    ffmpeg编译
    UIScrollView的contentSize、contentOffset和contentInset属性
    sqllite相关总结
  • 原文地址:https://www.cnblogs.com/webenh/p/7512749.html
Copyright © 2011-2022 走看看