`

asp.net mvc页面结构

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

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

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



打开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代码:
public static class ViewEngines 
{ 
	private readonly static ViewEngineCollection _engines = new ViewEngineCollection 
	{
		new WebFormViewEngine() 
	};
	public static ViewEngineCollection Engines
	{
		get
		{
			return _engines;
		}
	}
}

ViewEngines默认有一个实现了IVewEngine的类:WebFormViewEngine,这个类的源代码不是很长,主要是以下3个属性:
  MasterLocationFormats = new[]  
  { 
		"~/Views/{1}/{0}.master", 
		"~/Views/Shared/{0}.master" 
  };
  ViewLocationFormats = new[]  
  { 
		"~/Views/{1}/{0}.aspx",
		"~/Views/{1}/{0}.ascx",
        "~/Views/Shared/{0}.aspx",
		"~/Views/Shared/{0}.ascx"
  };
  PartialViewLocationFormats = ViewLocationFormats;


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

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

在Global文件中Application_Start方法中,添加以下代码(这样程序启动的时候添加一次就够了):
ViewEngines.Engines.Add(
	new WebFormViewEngine 
	{
		ViewLocationFormats = new string[]
		{ 
			"~/Views/Shared/ErrorPage/{0}.aspx" 
		}, 
		PartialViewLocationFormats = new string[] 
		{
			"~/Views/Shared/Partial/{0}.ascx"
		}
	}
);


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

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

相关推荐

    asp.net MVC4 CMS

    ASP.NET MVC4 CMS 是一个基于微软的ASP.NET MVC4框架构建的内容管理系统,它提供了一种高效、可扩展的方式来管理和展示网站内容。MVC(Model-View-Controller)设计模式是其核心,它将应用程序分为三个主要组件:...

    ASP.NET MVC5 编程实战.pdf

    ASP.NET MVC5 是微软开发的一款用于构建Web应用程序的框架,它结合了模型-视图-控制器(MVC)设计模式、ASP.NET Web Forms组件以及Web API功能,为开发者提供了更灵活、可测试的Web开发解决方案。这本书《ASP.NET ...

    基于ASP.NET MVC项目实例

    **ASP.NET MVC 框架详解** ASP.NET MVC(Model-View-Controller)是一种轻量级、基于组件的Web应用程序架构,它由微软开发并应用于.NET Framework中,为开发者提供了构建可测试、灵活且易于维护的Web应用的强大工具...

    ASP.NET MVC 项目集合.zip

    ASP.NET MVC 是微软开发的一款用于构建动态Web应用程序的框架,它结合了ASP.NET的优势和Model-View-Controller(MVC...同时,也可以学习到如何组织项目结构,以及如何利用ASP.NET MVC提供的工具和特性来解决实际问题。

    AngularJS开发ASP.NET MVC

    ### AngularJS 开发 ASP.NET MVC #### 知识点概览 - **AngularJS与ASP.NET MVC结合的优势** - **AngularJS的特点与优势** - **AngularJS的基本概念(如数据绑定、指令等)** - **如何在ASP.NET MVC项目中引入...

    ASP.NET MVC4

    ASP.NET MVC4是一个基于模型-视图-控制器(Model-View-Controller)设计模式的开源Web应用程序框架,由微软开发。这个框架为开发者提供了一种结构化的、灵活的方式来构建高效且可测试的Web应用。本教程是全英文的,...

    【全网首发】ASP.NET MVC4开发指南(附带源码)

    在ASP.NET MVC4中,路由系统是URL到控制器方法映射的关键部分,允许开发者自定义URL结构,提高用户体验和搜索引擎优化。此外,ASP.NET MVC4引入了azor视图引擎,这是一种轻量级、高性能的模板引擎,用于生成HTML响应...

    asp.Net mvc4 实例

    ASP.NET MVC4是一种基于Microsoft .NET Framework的轻量级、模型-视图-控制器(MVC)框架,用于构建可维护、高性能的Web应用程序。在VS2010集成开发环境中,结合SQL2008数据库,我们可以创建出功能丰富的Web应用。...

    ASP.NET MVC开发实战超完整源码

    3. **路由系统**:路由是ASP.NET MVC中控制URL结构的重要组件,允许开发者自定义URL模式,将特定的URL映射到控制器的特定动作。 4. **控制器(Controller)**:控制器是MVC中的核心组件,负责处理HTTP请求,调用...

    ASP.NET MVC5 入门 之登录验证

    ASP.NET MVC5 是微软开发的一款用于构建动态网站的框架,它结合了模型-视图-控制器(MVC)设计模式,使开发者能够更高效地构建可维护和测试的Web应用程序。在本入门教程中,我们将重点探讨如何在ASP.NET MVC5中实现...

    Asp.net MVC 3实例学习之ExtShop系列最终源代码

    Asp.net MVC 3 是微软推出的一款基于模型-视图-控制器(Model-View-Controller)架构的Web应用程序开发框架,它是Asp.net技术的一个重要分支,为开发者提供了更灵活的结构和更高的可测试性。在Asp.net MVC 3中,我们...

    ASP.NET MVC4开发指南(带目录)

    ASP.NET MVC4是一种基于Microsoft .NET Framework的开源Web应用程序框架,专为构建可维护性和测试性的动态网站而设计。这个框架结合了Model-View-Controller(MVC)设计模式,C#编程语言,以及.NET Framework的强大...

    毕业设计:基于ASP.NET mvc2.0+Layui 权限管理系统.zip

    ASP.NET MVC是微软开发的一个用于构建Web应用的开源框架,它基于模型-视图-控制器(MVC)设计模式,为开发者提供了更加清晰的代码结构和更好的分离关注点。MVC2.0是该框架的一个早期版本,虽然现在已经被更新的版本...

    inspinia_admin2.7 asp.net mvc5

    - 开发者可以利用Visual Studio IDE,结合ASP.NET MVC5和Inspinia Admin模板,快速搭建项目结构。 - 创建控制器和视图,定义路由,实现业务逻辑,与数据库交互,通常使用Entity Framework作为ORM(对象关系映射)...

    ASP.NET MVC4开发指南(保哥)

    ASP.NET MVC4是一种基于模型-视图-控制器(MVC)设计模式的Web应用程序框架,由微软公司开发,用于构建动态、数据驱动的网站。它提供了更清晰的代码结构、更好的测试支持和更高的开发效率。在ASP.NET MVC4中,我们将...

    一个完整的asp.net mvc架构网站实例

    这个实例提供了一个完整的ASP.NET MVC网站的详细结构和实现,可以帮助开发者了解和学习如何创建高效、可维护的Web应用。 **ASP.NET MVC架构** 1. **模型(Model)**:模型是应用程序的核心部分,它处理业务逻辑和...

    ASP.NET MVC 4和ASP.NET MVC5[附源码]合集

    ASP.NET MVC 是微软提供的一种基于模型-视图-控制器(Model-View-Controller)模式的Web应用程序开发框架,它在ASP.NET平台上运行。这个框架旨在为开发者提供更清晰的结构,更好的测试性,以及更高的生产力。ASP.NET...

    (1)MVC模式与ASP.NET MVC框架概述

    ASP.NET MVC框架内置对Ajax的支持,允许开发者创建异步更新的页面,提升用户体验。 总的来说,ASP.NET MVC框架结合了MVC模式的优势,提供了一种高效、可扩展和易于测试的开发方式,尤其适合大型企业级应用的开发。...

    ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述

    ASP.NET MVC框架是.NET Framework的一部分,它提供了实现MVC模式的结构和工具。该框架有以下关键特性: 1. **路由系统**:ASP.NET MVC使用路由引擎处理HTTP请求,根据预定义的规则映射URL到特定的控制器方法。 2. ...

    Asp.net MVC购物车源码实例

    Asp.NET MVC是一种基于Microsoft .NET Framework的开源应用程序框架,专为构建动态、数据驱动的Web应用程序而设计。在这个购物车源码实例中,我们将会深入探讨如何在Asp.NET MVC环境中实现一个功能完整的购物车系统...

Global site tag (gtag.js) - Google Analytics