MVC探索之路(2、MVC各组成部分)

来源:互联网 发布:网络霸气情侣名 编辑:程序博客网 时间:2024/05/21 21:44

                                            MVC的各组成部分


一:ASP.NET MVC应用程序目录结构主要文件夹        




数据库文件App_Data)一般不会用到。如果使用 SQL CE4,可以用来保存数据库文件,如果使用 SQL Server 则不一定需要。我们在项目中增加 App_Data 文件夹用来保存数据库文件,App_Data 是一个 ASP.NET 中特殊的文件夹,已经被网站对其中数据地访问进行了安全限制,从项目的菜单中,选择增加 ASP.NET 文件夹,然后,选择App_Start


AuthConfig.cs:MVC内部解析是若要允许此站点的用户使用他们在其他站点(例如 Microsoft、Facebook 和 Twitter)上拥有的帐户登录,必须更新此站点。有关详信息,请访           问 http://go.microsoft.com/fwlink/?LinkID=252166。这个一般不用,就不说了。BundleConfig.cs:包含了一些应用程序中使用的脚本和样式表的文件路径,其中可以使用通配符。
          使用Add方法.              bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js"));              new ScriptBundle("~/bundles/jquery")定义一个分组名称,Include表示这个分组下具体包括的文件。              version参数代表版本号 ,*代表所有,这两个是可以理解为通配符。              以上代码表示创建一个~/bundles/jquery分组,该分组指向的文件为scripts文件夹下的jquery-1.7.1.js文件。              如果scripts文件夹下有jquery-1.7.1.js,jquery-1.6.1.js,则会指向这两个文件。                同样,bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));              表示创建了一个~/Content/css分组,指向~/Content/site.css文件.
FilterConfig.cs:全局过滤器(在后期会专门讲一下我对过滤器的理解)。RouteConfig.cs:public static void RegisterRoutes(RouteCollection routes){    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");       routes.MapHttpRoute(          name: "DefaultApi",          routeTemplate: "api/{controller}/{id}",          defaults: new { id = RouteParameter.Optional }    );         routes.IgnoreRoute("{resource}.axd/{*pathInfo}");            routes.MapRoute(                "Default",                "{controller}/{action}/{id}",                new { controller = "Home", action = "Index", id = UrlParameter.Optional },                new string[] { "xxx.WebUI.Controllers" }////默认控制器地址            );}
注意:WebApi  用到的是MapHttpRoute,为什么要用?因为routeTemplate中有了{controller},针对api的请求可以自动映射到指定的controller类。           WebApi 怎么找到合适的Action?系统根据请求的方式来判断.如果是以GET的方式请求的,那么将匹配controller中以“Get”开头的Action;如果是以POST的方式请求的,那么将匹配controller中以“Post”开头的Action;如果是以PUT的方式请求的,那么将匹配controller中以“Put”开头的Action;如果是以DELETE的方式请求的,那么将匹配controller中以“Delete”开头的Action;除了这几个默认的请求方式,还可以在客户端定义你自己的请求方式!我们仍然可以把action的名字放到默认的请求规则中,只要把routeTemplate改为如下即可:         config.Routes.MapHttpRoute(                name: "DefaultApi",                routeTemplate: "api/{controller}/{action}/{id}",                defaults: new { id = RouteParameter.Optional }            )

Content:一般放全局样式和图片之类的公共文件。

Controllers:小项目的话,就把所有的控制器放里面。如果是有前后台,并且还有App的建议这个文件夹只放原始生成的HomeController.cs,里面放一个定向跳转。或者只放前台后的登陆相关的控制器。

Filters:专门放过滤器类的,一般可以在里面重构过滤方法。

  public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext context)

  public override void OnActionExecuted(System.Web.Http.Filters.HttpActionExecutedContext context)等。

Global.asax:这个文件一般启动上述文件夹下的文件。如果想简单的,可以把全局过滤,路由等都写在里面。 protected void Application_Start()里面一般可以有:

     连接会话的操作(string constring = ConfigurationManager.ConnectionStrings["DbHelperConnectionString"].ToString();
            DBContext db = new DBContext(1, DataBaseType.SQLServer, constring, 15);            DBSession.InitDBSession(db, typeof(OLJ_AdminUser).Assembly);            DBSession.DefaultDBKey = 1;),    注册解析路径方式(RegisterRoutes(RouteTable.Routes);)      注册所有的域(AreaRegistration.RegisterAllAreas();)
     protected void Session_Start(object sender, EventArgs e);session操作等涉及到应用程序全局类或方法。
   

Web.config:(根目录下,对根目录下所有文件起作用。一般配置全局错误处理,数据库连接,微信信息,短信信息等等

    是以XML文件规范存储,配置文件分为以下格式

        1.配置节处理程序声明

        特点: 位于配置文件的顶部,包含在<configSections>标志中。

        2.特定应用程序配置

        特点: 位于<appSetting>中。 可以定义应用程序的全局常量设置等信息.

        3.配置节设      

        <customErrors  mode="RemoteOnly"  defaultRedirect="error.aspx" <error statusCode="440" redirect="err440page.aspx"/> 

            <error statusCode="500" redirect="err500Page.aspx"/>

       </customErrors  >

        特点: 位于<system.Web>节中,控制Asp.net运行时的行为.

        4.配置节组

        特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.

        (二).配置节的每一节

        1.<configuration>节

        根元素,其它节都是在它的内部.

        2.<appSetting>节

        此节用于定义应用程序设置项。对一些不确定设置,还可以让用户根据自己实际情况自己设置

        用法:

      <appSettings>
                <add key="Conntction" value="server=192.168.0.2;userid=sa;password=;database=Info;"/>
              <appSettings>

      定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码.

       <appSettings>

                  <add key="ErrPage" value="Error.aspx"/>
               <appSettings>
              定义了一个错误重定向页面.

        3.<compilation>节

        格式:   

        <compilation  defaultLanguage="c#"  debug="true" />

         debug : 为true时,启动aspx调试; 为false不启动aspx调试,因而可以提高应用程序运行时的性能。 一般程序员在开发时设置为true,交给客户时设置为false.

        4.<customErrors>节

        格式:

        I.mode : 具有On,Off,RemoteOnly 3种状态。On表示始终显示自定义的信息; Off表示始终显示详细的asp.net错误信息; RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义信息.

        II.defaultRedirect: 用于出现错误时重定向的URL地址. 是可选的

        III.statusCode: 指明错误状态码,表明一种特定的出错状态.

        IV. redirect:错误重定向的URL.












0 0
原创粉丝点击