Mike

导航

ASP.NET MVC Tip #24 – 从不同目录获得View

ASP.NET MVC Tip #24 – 从不同目录获得View
ASP.NET MVC Tip #24 – Retrieve Views from Different Folders

美语原文:http://weblogs.asp.net/stephenwalther/archive/2008/07/23/asp-net-mvc-tip-24-retrieve-views-from-different-folders.aspx
国语翻译:http://www.cnblogs.com/mike108mvp

译者注:在下水平有限,翻译中若有错误或不妥之处,欢迎大家批评指正。谢谢。

译者注:ASP.NET MVC QQ交流群 1215279 欢迎对 ASP.NET MVC 感兴趣的朋友加入

在这篇帖子中,我将演示在ASP.NET MVC application中如何从任意的目录获得一个View。我将展示如何使用明确路径和相对路径。

今天以前,我一直以为controller action只能从下面两个地方获得View:

· Views\controller name
· Views\Shared

例如,如果你正在使用ProductController,那么我以前认为你只能从Views\Product目录或者Views\Shared目录获得一个View。当我在仔细查看ViewLocator 类的源码时,我发现我错了。如果你给一个view提供一个“明确路径”,你可以从ASP.NET MVC application的任何位置获得一个View。

Listing 1中的ProductController.Index() action 从一个明确路径 ~\Confusing\ButWorks.aspx 返回了一个view。

Listing 1 – ProductController.cs (C#)

明确路径是指用~或者/ 开头的路径。任何其它路径用不同方式处理。

你也可以使用“相对路径”,例如SubProduct\Details 或者 SubProduct/Details。二者中的任何一个都将返回一个位于Views\Product\SubProduct\Details.aspx 的view。Listing 2 包含了一个完整的代码,阐明了使用相对路径。

Listing 2 – ProductController.cs (C#)



现在,我想要第一个警告你,你绝对不要,不要,不要使用这篇帖子介绍的技巧。(请将该帖子从你的新闻聚合器中立即删除)。使用MVC application固有的惯例是很有好处的。将你的文件放在对应名字的目录中,能让每个人更容易理解你的应用程序。

posted on 2008-07-24 20:46  mike108mvp  阅读(2371)  评论(4编辑  收藏  举报