通过启用MvcBuildViews到MVC 2 Portable Area来编译视图

时间:2010-09-24 09:25:13

标签: asp.net-mvc asp.net-mvc-2 portable-areas

我有一个很大的.net mvc 2项目,我们正在使用MvcContrib Portable Area。有一个主网站可以加载许多模块(PA模块)。

主应用程序在其Site.Mater文件夹中包含~\Views\Shared。每个模块也有自己的Site.Master,它继承自那个主模块。

目前我们正在使用类似的东西:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" MasterPageFile="~/Views/Shared/Site.Master" %>

编译后,视图处理主Site.Master,因为它是一个相对路径。 现在我收到了在编译期间构建视图的要求。所以我在每个Web PA模块项目中都启用了MvcBuildViews = true。

当然,我收到的错误是"/temp/Views/Shared/Site.Master is not found"

如何保持嵌入内容的Portable Area并确保视图不包含错误?

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

你做不到。

我正在处理同样的问题,你无法轻易伪造文件的物理位置。

唯一的解决方案是在构建过程中创建占位符并删除非嵌入式占位符文件。这种技术的好处是非嵌入式资源在开发过程中加载速度会快一些。

要考虑的另一件事是将视图加载为嵌入式资源非常慢。让构建过程将集中的“常见”视图移动到本地项目将为您的用户带来更好的性能。

答案 1 :(得分:1)

如果你只是想确保一切正常,你可以使用Watin并写一些单元测试来检查这个