无尽的忙碌换来幸福的日子「建议收藏」

人总是忙碌的,从小要读书,长大了工作,结婚了,有孩子了,一辈子也可能等到孩子成家了才能稍微休息一下下吧,不过有时候想想,忙碌点好,一辈子也就那么长,等闭了后还能休息好久好久呢,何不忙碌点呢。从过年以后,一直忙碌着,忙撒呢,上班忙新网站改版,下班忙结婚,周末也忙结婚,几乎一天都没有消停过,老婆无数次问我累不累,我说不累,再累也觉得幸福,嘿嘿。感叹了一下,好久也没来了,最近工作上呢刚赶出来一个…

大家好,又见面了,我是你们的朋友全栈君。

人总是忙碌的,从小要读书,长大了工作,结婚了,有孩子了,一辈子也可能等到孩子成家了才能稍微休息一下下吧,不过有时候想想,忙碌点好,一辈子也就那么长,等闭了后还能休息好久好久呢,何不忙碌点呢。

从过年以后,一直忙碌着,忙撒呢,上班忙新网站改版,下班忙结婚,周末也忙结婚,几乎一天都没有消停过,老婆无数次问我累不累,我说不累,再累也觉得幸福,嘿嘿。

感叹了一下,好久也没来了,最近工作上呢刚赶出来一个改版,用了Asp.Net MVC 目的也是学习下,因为周期比较紧张,本想好好研究的,都没有时间,到后来也就破罐子破摔了。今天献丑,说上一段。

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

image

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

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

image

打开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,递归寻找,如果找到就显示,如果没有找到就报异常了。我们看下ViewEngines代码:

 1:  public static class ViewEngines
 2:  {
   
   
 3:   
 4:      private readonly static ViewEngineCollection _engines = new ViewEngineCollection {
   
   
 5:          new WebFormViewEngine() 
 6:      };
 7:   
 8:      public static ViewEngineCollection Engines
 9:      {
   
   
10:          get
11:          {
   
   
12:              return _engines;
13:          }
14:      }
15:  }

ViewEngines默认有一个实现了IVewEngine的类:WebFormViewEngine,这个类的源代码不是很长,主要是以下3个属性:

 1:  MasterLocationFormats = new[] 
 2:  {
   
   
 3:      "~/Views/{1}/{0}.master",
 4:      "~/Views/Shared/{0}.master"
 5:  };
 6:   
 7:  ViewLocationFormats = new[] 
 8:  {
   
   
 9:      "~/Views/{1}/{0}.aspx",
10:      "~/Views/{1}/{0}.ascx",
11:      "~/Views/Shared/{0}.aspx",
12:      "~/Views/Shared/{0}.ascx"
13:  };
14:   
15:  PartialViewLocationFormats = ViewLocationFormats;

很明显,这几个属性代表了路径格式,Master、View、PartialView的路径格式都可以设置。

现在知道了这么多,对我这个懒人来说已经足够了。动手来实现一下:

在Global文件中Application_Start方法中,添加以下代码(这样程序启动的时候添加一次就够了):

 1:  ViewEngines.Engines.Add(new WebFormViewEngine
 2:  {
   
   
 3:      ViewLocationFormats = new string[]
 4:      {
   
   
 5:          "~/Views/Shared/ErrorPage/{0}.aspx"
 6:      },
 7:   
 8:      PartialViewLocationFormats = new string[]
 9:      {
   
   
10:          "~/Views/Shared/Partial/{0}.ascx"
11:      }
12:  });

好了,运行吧,应该没什么问题了,这样我们以后,可以按照自己想要的方式来存放文件了,这样结构也比较清晰。这次寻找的目的也是因为在页面广告上,一开始都放在了Shared目录下面,看上去太不爽了,就找了下方法,当然肯定还有其他方法,我也比较偷懒,就用了它自带的类完成了目标,也算可以了,吼吼。

PS:今天估计都是Google的天下,Google坚持了自己的信念,对个人来说我比较支持,但对于公司角度来说,现在真不敢再在Google上投推广了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129057.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于数据库备份的定义和重要性

    关于数据库备份的定义和重要性所谓备份,就是通过特定的办法,讲数据库的必要文件复制到转储设备的过程.其中,转储设备是指用于放置数据库拷贝的磁带或磁盘    选择备份的依据是:丢失数据的代价与确保数据不丢失的代价之比.还有的时候,硬件的备份有时根本就满足不了现实需要,比如误删了一个表,又想恢复该表的时候,数据库备份就变得重要了.    Oracle提供了强大的备份与恢复策略,包括常规数据库备份(逻辑备份,冷备份与

    2022年5月14日
    29
  • 数据库概念设计与逻辑设计[通俗易懂]

    数据库概念设计与逻辑设计[通俗易懂]一、概念设计概念设计的目的就是为了建立概念数据模型,概念数据模型也称为高级数据模型,之所以称为高级数据模型是因为它更接近于人的思维,而不是机器的思维,相比于关系模型更容易理解,此处的高级和低级的概念,与程序语言领域的高低级是一样的。我们通常称Java语言为高级语言,汇编语言为低级语言,是因为高级语言对于我们而言要比汇编语言更容易理解。关于概念数据模型,我们一般都会采用E-R图进行描述。E-R图的规则如下:1.实体采用矩形框,联系采用菱形框,属性采用椭圆形框。2.实体、联系、属性必须使用文字描

    2022年10月9日
    1
  • 集群管理软件介绍_集群管理是什么意思

    集群管理软件介绍_集群管理是什么意思转载。From https://blog.csdn.net/swingwang/article/details/77971905集群就是通过软件将一组服务器作为一个整体向客户提供资源。这些单个的服务器就是集群的节点。当对外提供资源的节点故障后,集群中其余的节点能够将资源接管起来,继续对客户提供资源。集群技术的核心就是资源访问控制。由于集群中所有节点都可以访问集群对外共享的资源,当多个节点同时操作…

    2022年10月15日
    0
  • java经典实例 源代码_100个Java经典编程实例源代码JAVA源码下载

    java经典实例 源代码_100个Java经典编程实例源代码JAVA源码下载100个Java经典编程实例源代码(2folders,2files,1.38KB,25.13MBintotal.)java运用编程100例(二)例57-100(45folders,2files,1.38KB,17.04MBintotal.)实例100(1folders,4files,1.64KB,1.31MB…

    2022年7月7日
    21
  • [Python图像处理] 十七.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子

    [Python图像处理] 十七.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子图像锐化和边缘提取技术可以消除图像中的噪声,提取图像信息中用来表征图像的一些变量,为图像识别提供基础。通常使用灰度差分法对图像的边缘、轮廓进行处理,将其凸显。本文分别采用Laplacian算子、Robert算子、Prewitt算子和Sobel算子进行图像锐化边缘处理实验。本文主要讲解灰度线性变换,基础性知识希望对您有所帮助。1.Roberts算子2.Prewitt算子3.Sobel算子4.Laplacian算子5.总结代码

    2025年7月1日
    0
  • python编程新手常犯的错误_python数组从0还是1

    python编程新手常犯的错误_python数组从0还是1在下面的例子中,希望做到的是数组a,b中元素大于3的置为1,其余为0。应该先做置0操作。程序:importnumpyasnpa=[1,2,2,3,4,5]a=np.array(a)b=[1,2,2,3,4,5]b=np.array(b)#错误的例子a[a>3]=1a[a<=3]=0print(‘a’,a)b[b<=3]=0b[b>3]=1print(‘b’,b)输出:a[00000

    2022年8月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号