【MVC】 文件及URL 的整理

时间:2023-03-10 03:14:07
【MVC】 文件及URL 的整理

我们平时在做Asp.Net MVC(以下就简称mvc)项目的时候,页面文件结构都用了“/Views/Controllers/page.aspx”,而把一些PartialView呢放在/Views/Shared 目录下面,但如果PartialView越来越多了呢。。。。如果其中还混杂着几个MasterPage,几个Error.aspx。。。。这个目录看起来就。。。。。

【MVC】 文件及URL 的整理

O my lady gaga!忒难看了,如果多了以后那更难看了。。。。。

为了看起来好看点,我准备分目录存放,我的目标是:

【MVC】 文件及URL 的整理

打开Home\Index.asp文件,放一个Login的PartialView吧。先运行一下看看吧。。。一定肯定以及确定不能运行,因为我们的mvc根本没有找到所需的文件,错误信息“The partial view 'xxx' was not found”。

我们知道mvc在查找文件的时候,会到2个目录下查找,一个是Controller目录,一个就是Shared目录,寻找Action.aspx或者Action.ascx,我们看下源代码(我下载的是asp.net mvc rc2),通过查看源代码,得知查找View或者PartialView都是通过IViewEngine.FindView和IViewEngine.FindPartialView来查找的。通过静态类:ViewEngines中的Engines,递归寻找,如果找到就显示,如果没有找到就报异常了。

隐藏行号 复制代码 ? 这是一段程序代码。
  1. ViewEngines.Engines.Add(new WebFormViewEngine
    
  2. {
    
  3.     ViewLocationFormats = new string[]
    
  4.  {
    
  5.     "~/Views/Shared/Error/{0}.aspx"
    
  6.  },
    
  7.     PartialViewLocationFormats = new string[]
    
  8.   {
    
  9.      "~/Views/Shared/Partial/{0}.ascx"
    
  10.   },
    
  11.     MasterLocationFormats = new string[]
    
  12. {
    
  13.  "~/Views/Shared/Master/{0}.Master"
    
  14. },
    
  15.     AreaMasterLocationFormats = new string[]
    
  16.  {
    
  17.     "~/Areas/{1}/Share/Master/{0}.Master"
    
  18.  }
    
  19. 
    
  20. });
    

.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}
.src_container .titlebar{ background-color:#d4dfff; border:1px solid #4f81bd; border-bottom:0; padding:3px 24px; margin:0; width:auto; line-height:120%; overflow:hidden; text-align:left; font-size:12px}
.src_container .toolbar{ display:inline; font-weight:normal; font-size:100%; float:right; cursor:hand; color:#00f; text-align:left; overflow:hidden}
.toolbar span.button{ display:inline; font-weight:normal; font-size:100%; cursor:hand; color:#00f; text-align:left; overflow:hidden; cursor:pointer;}
.src_container div.clientarea{ background-color:white; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; height:auto; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}
.src_container ol.mainarea{ padding:0 0 0 52px; margin:0; background-color:#f7f7ff !important}
.number_show{ padding-left:52px !important; list-style:decimal outside !important}
.number_show li{ list-style:decimal outside !important; border-left:1px dotted #4f81bd}
.number_hide{ padding-left:0px !important; list-style-type:none !important}
.number_hide li{ list-style-type:none !important; border-left:0px}
ol.mainarea li{ display:list-item !important; font-size:12px !important; margin:0 !important; line-height:18px !important; padding:0 0 0 0px !important; background-color:#f7f7ff !important; color:#4f81bd}
ol.mainarea li pre{color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}

【MVC】 文件及URL 的整理