我们平时在做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框架构建的内容管理系统,它提供了一种高效、可扩展的方式来管理和展示网站内容。MVC(Model-View-Controller)设计模式是其核心,它将应用程序分为三个主要组件:...
ASP.NET MVC5 是微软开发的一款用于构建Web应用程序的框架,它结合了模型-视图-控制器(MVC)设计模式、ASP.NET Web Forms组件以及Web API功能,为开发者提供了更灵活、可测试的Web开发解决方案。这本书《ASP.NET ...
**ASP.NET MVC 框架详解** ASP.NET MVC(Model-View-Controller)是一种轻量级、基于组件的Web应用程序架构,它由微软开发并应用于.NET Framework中,为开发者提供了构建可测试、灵活且易于维护的Web应用的强大工具...
ASP.NET MVC 是微软开发的一款用于构建动态Web应用程序的框架,它结合了ASP.NET的优势和Model-View-Controller(MVC...同时,也可以学习到如何组织项目结构,以及如何利用ASP.NET MVC提供的工具和特性来解决实际问题。
### AngularJS 开发 ASP.NET MVC #### 知识点概览 - **AngularJS与ASP.NET MVC结合的优势** - **AngularJS的特点与优势** - **AngularJS的基本概念(如数据绑定、指令等)** - **如何在ASP.NET MVC项目中引入...
ASP.NET MVC4是一个基于模型-视图-控制器(Model-View-Controller)设计模式的开源Web应用程序框架,由微软开发。这个框架为开发者提供了一种结构化的、灵活的方式来构建高效且可测试的Web应用。本教程是全英文的,...
在ASP.NET MVC4中,路由系统是URL到控制器方法映射的关键部分,允许开发者自定义URL结构,提高用户体验和搜索引擎优化。此外,ASP.NET MVC4引入了azor视图引擎,这是一种轻量级、高性能的模板引擎,用于生成HTML响应...
ASP.NET MVC4是一种基于Microsoft .NET Framework的轻量级、模型-视图-控制器(MVC)框架,用于构建可维护、高性能的Web应用程序。在VS2010集成开发环境中,结合SQL2008数据库,我们可以创建出功能丰富的Web应用。...
3. **路由系统**:路由是ASP.NET MVC中控制URL结构的重要组件,允许开发者自定义URL模式,将特定的URL映射到控制器的特定动作。 4. **控制器(Controller)**:控制器是MVC中的核心组件,负责处理HTTP请求,调用...
ASP.NET MVC5 是微软开发的一款用于构建动态网站的框架,它结合了模型-视图-控制器(MVC)设计模式,使开发者能够更高效地构建可维护和测试的Web应用程序。在本入门教程中,我们将重点探讨如何在ASP.NET MVC5中实现...
Asp.net MVC 3 是微软推出的一款基于模型-视图-控制器(Model-View-Controller)架构的Web应用程序开发框架,它是Asp.net技术的一个重要分支,为开发者提供了更灵活的结构和更高的可测试性。在Asp.net MVC 3中,我们...
ASP.NET MVC4是一种基于Microsoft .NET Framework的开源Web应用程序框架,专为构建可维护性和测试性的动态网站而设计。这个框架结合了Model-View-Controller(MVC)设计模式,C#编程语言,以及.NET Framework的强大...
ASP.NET MVC是微软开发的一个用于构建Web应用的开源框架,它基于模型-视图-控制器(MVC)设计模式,为开发者提供了更加清晰的代码结构和更好的分离关注点。MVC2.0是该框架的一个早期版本,虽然现在已经被更新的版本...
- 开发者可以利用Visual Studio IDE,结合ASP.NET MVC5和Inspinia Admin模板,快速搭建项目结构。 - 创建控制器和视图,定义路由,实现业务逻辑,与数据库交互,通常使用Entity Framework作为ORM(对象关系映射)...
ASP.NET MVC4是一种基于模型-视图-控制器(MVC)设计模式的Web应用程序框架,由微软公司开发,用于构建动态、数据驱动的网站。它提供了更清晰的代码结构、更好的测试支持和更高的开发效率。在ASP.NET MVC4中,我们将...
这个实例提供了一个完整的ASP.NET MVC网站的详细结构和实现,可以帮助开发者了解和学习如何创建高效、可维护的Web应用。 **ASP.NET MVC架构** 1. **模型(Model)**:模型是应用程序的核心部分,它处理业务逻辑和...
ASP.NET MVC 是微软提供的一种基于模型-视图-控制器(Model-View-Controller)模式的Web应用程序开发框架,它在ASP.NET平台上运行。这个框架旨在为开发者提供更清晰的结构,更好的测试性,以及更高的生产力。ASP.NET...
ASP.NET MVC框架内置对Ajax的支持,允许开发者创建异步更新的页面,提升用户体验。 总的来说,ASP.NET MVC框架结合了MVC模式的优势,提供了一种高效、可扩展和易于测试的开发方式,尤其适合大型企业级应用的开发。...
ASP.NET MVC框架是.NET Framework的一部分,它提供了实现MVC模式的结构和工具。该框架有以下关键特性: 1. **路由系统**:ASP.NET MVC使用路由引擎处理HTTP请求,根据预定义的规则映射URL到特定的控制器方法。 2. ...
Asp.NET MVC是一种基于Microsoft .NET Framework的开源应用程序框架,专为构建动态、数据驱动的Web应用程序而设计。在这个购物车源码实例中,我们将会深入探讨如何在Asp.NET MVC环境中实现一个功能完整的购物车系统...