为了让几个站点具有一组中心视图,我创建了一个带有我的视图的外部库。它们始终标记为内容和副本 此视图库在我的网站中引用,因此编译时会在其bin文件夹中获取“Views”文件夹 然后我做了一个快速定制的ViewEngine:
public class CommonViewLocator: WebFormViewEngine
{
public CommonViewLocator()
{
MasterLocationFormats = new[] {
"~/bin/Views/{1}/{0}.master",
"~/bin/Views/Shared/{0}.master"
};
ViewLocationFormats = new[] {
"~/bin/Views/{1}/{0}.aspx",
"~/bin/Views/{1}/{0}.ascx",
"~/bin/Views/Shared/{0}.aspx",
"~/bin/Views/Shared/{0}.ascx"
};
PartialViewLocationFormats = ViewLocationFormats;
}
}
跑完后我得到这个屏幕:
The view 'Index' or its master could not be found. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/bin/Views/Home/Index.aspx
~/bin/Views/Home/Index.ascx
~/bin/Views/Shared/Index.aspx
~/bin/Views/Shared/Index.ascx
出了什么问题?
此外,bin文件夹有视图感觉有点奇怪,欢迎任何其他建议。
答案 0 :(得分:1)
为什么不在项目上使用post-build操作将/ bin / Views中的文件移动到/ Views?那么你就不必在代码中做任何特别的事了。
答案 1 :(得分:0)
如果您完全确定内容位于正确的文件夹中,则可能是服务器不允许从bin目录提供任何内容,出于明显的安全原因。
如果是这种情况,我建议您将视图保留在外部项目中,然后创建呈现这些视图的HTML扩展方法。