MVC进阶学习--个性化目录结构(一)

(一) 简单MVC目录结构分析

  

  以上是一个再简单不过的MVC目录结构了,这也是微软MVC解决方案的基础目录结构,在我们一般的MVC开发项目中,基本上就是套用了这种格式。我们不需要去自己去定义一个目录,因为微软已经帮我们定义好了。我们只需要在原有的基础上添加和修改。

  Content 文件夹,内容文件夹,姑且这样理解,我们主要存放样式文件,图片文件,xml文件以及其他的一些资源文件。这个没有太多的介绍。当然我们不一定要放到这个里面去,也可以自己定义一个文件夹。不过我个人还是趋向于放在这个里面,毕竟是别人已经定义好了的,"拿来主义",直接用就可以了。

  Scripts 文件夹,则主要存放的是Javascript 的js文件,其中里面自带了Jquery的核心包和微软自带的Ajax相关的js文件。如果我们没有用到可以删除(我想你会喜欢上它,舍不得将它删除)。还有我们自己定义的一些js文件也可以存放在这个文件夹中。这样是为了使目录结构清楚,方便于文件的管理

  Views文件夹,在我们新建MVC项目的时候,这个文件夹下有三个文件夹,分别是Shared,Home,Account。其中Home,Account存放的一些aspx页面。我想你一定会主要到得里面只有aspx页面而没有cs页面。这就是MVC与WebForm很大不同的地方。Shared文件夹则是存放了母版页和用户控件等文件,当然它可以存放aspx页面,比如我们的错误页面。只要是我们想让他共享的页面文件都可以存放在这个里面。这里的Home,Account 这两个文件夹不是普通的文件夹(这是要注意的地方),因为它与控制器相关联。

  Controllers文件夹,这个文件夹这是存放 控制器类的文件夹,MVC的核心文件夹,一切控制请求转发都是这个里面的类文件来处理。Controller 主要作用是捕获请求和控制流程转发,其作用可想而知。我们主要到每个控制器都是以***Controller 来命名的,如果你第一眼能看出来说明你很聪明。这里的每个控制器都是与Views文件夹下的文件夹对应,Home文件夹则对应HomeController 类,Home文件夹下的所有文件都可以由HomeController来处理。当然不是一定由它处理。要分清楚,Views文件夹下的文件夹就一定对应一个Controller,反之的理解是狭隘的

 

(二)视图路径的设置

  

  当我们苦恼于如果页面文件很多的时候,1000个aspx页面我要放在一个文件下,这些文件怎么管理啊。呵呵MVC可以再新建视图路径,如上图。我们可以再Home 文件夹中再建立一个文件夹,这儿里面同样可以存放aspx页面。既然可以新建文件夹,那么管理文件就方便多了

  访问方式: <%=Html.ActionLink("Detail目录结构","List") %>

  public ActionResult List()

  {

    return View("Detail/StuDetail");

  }

  使用这种方式就OK了

时间: 2024-09-20 06:36:54

MVC进阶学习--个性化目录结构(一)的相关文章

MVC进阶学习--个性化目录结构(二)

(一)  浅谈MVC目录结构 在上一篇(<MVC进阶学习--个性化目录结构(一)>)中了解到了MVC 的基本目录结构,以及各个目录的作用.我们只是说到了表面的目录结构,没有了解到它运行的原理.是不是MVC的目录结构只能有那种固定的模式呢,我们能否根据自己的需要扩展这些目录结构呢.答案是肯定的.因为asp.net MVC中引用了WebFromViewEngine 这个视图引擎 (二) WebFormViewEngine视图引擎 1.IView接口    IView接口是对MVC结构中View对象

MVC进阶学习--个性化目录结构(三)

(一) 目录结构 看到上面的目录结构 会有耳目一新的感觉,终于突破了原有的MVC目录结构.该目录结构除了使用原有的Controllers 文件夹之外,我们还使用了Games自定义文件夹中的Controllers.在Users文件夹中也同样还有一个Controllers文件夹,这些文件夹都是存放控制器类的.我们可以根据自己的需要建立不同的Controller 组. 在大型项目开发的过程中,模块的数量可能会很多,仅仅只靠原有的目录结构是不能满足我们的要求的,而且扩展性也不是太好,因为思想就被束缚在它

MVC进阶学习--HtmlHelper之GridView控件拓展(五)

1.GridView使用Action代码   Code 1 public ActionResult Index() 2         { 3             CommonPage page = TempData["page"] as CommonPage; 4             if (page == null) 5             { 6                 page = new CommonPage(); 7             } 8   

MVC进阶学习--HtmlHelper控件解析(四)

1.RenderPartialExtensions类      RenderPartialExtensions类主要扩展了一个方法 RenderPartial()      RenderPartial(string partialViewName);      RenderPartial(string partialViewName,ViewDataDictionary viewData);      RenderPartial(string partialViewName,object mod

MVC进阶学习--View和Controller之间的数据传递(二)

1. 使用Request.Form MVC 将页面简单化,与WebForm中的事件机制完全不同,就和普通的html标签表单提交没有任何区别(当然WebForm中的事件机制其实也是表单提交).在表单提交之后,在Controller action中可以以Request.Form["key"] 的方式获取到值. Code1 <%Html.BeginForm("Index", "Home", FormMethod.Post); %>2   &

MVC进阶学习--View和Controller之间的数据传递(一)

1.使用ViewData ViewData 的是ControllerBase 的一个属性,是一个数据字典类型的,其实现代码如(这段代码来自asp.net MVC开源项目中源码)下: Code  1 public class ViewDataDictionary : IDictionary<string, object> {  2   3         private readonly Dictionary<string, object> _innerDictionary = ne

MVC进阶学习--HtmlHelper控件解析(一)

1.HtmlHelper类      HtmlHelper类位于System.Web.MVC.Html命名空间下.主要包括FormExtensions,InputExtensions,LinkExtensions,SelectExtensions,TextAreaExtensions,ValidationExtensions,RenderPartialExtensions等7个静态内,他们全部是是采用拓展方法来实现的      在asp.net MVC中ViewPage中使用的属性如下:    

MVC进阶学习--HtmlHelper之GridView控件拓展(三)

1.扩展核心代码 Code  1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Web;  5 using System.Web.Mvc.Html;  6 using System.Web.Mvc;  7 using MvcTest.Code;  8 using System.Web.UI;  9 using System.IO; 10 using System.D

MVC进阶学习--HtmlHelper之GridView控件拓展(二)

1.目录结构图       2.自定义集合类 Codeusing System;using System.Collections.Generic;using System.Linq;using System.Web; namespace MvcTest.Code{    public class PageList<T> : List<T>    {        private CommonPage _page;         public CommonPage Page