我编写了自定义VirtualFile和VirtualPathProvider实现,这些实现成功获取了部分视图的嵌入式资源.
但是,当我尝试渲染它们时会产生此错误:
The view at '~/Succeed.Web/Succeed.Web.Controls.SImporter._SImporter.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.
渲染局部视图时,在常规视图内部,它看起来如下所示:
Html.RenderPartial("~/Succeed.Web/Succeed.Web.Controls.SImporter._SImporter.cshtml");
Run Code Online (Sandbox Code Playgroud)
是什么让它相信这不是局部观点?
编辑:我为虚拟文件和虚拟文件提供程序实现发布了我的代码,任何人偶然发现这个寻找解决方案来获得该组件的工作.这个问题也适用于基于问题标题的人.
ere是VirtualFile实现以供参考:
public class SVirtualFile : VirtualFile
{
private string m_path;
public SVirtualFile(string virtualPath)
: base(virtualPath)
{
m_path = VirtualPathUtility.ToAppRelative(virtualPath);
}
public override System.IO.Stream Open()
{
var parts = m_path.Split('/');
var assemblyName = parts[1];
var resourceName = parts[2];
assemblyName = Path.Combine(HttpRuntime.BinDirectory, assemblyName);
var assembly = System.Reflection.Assembly.LoadFile(assemblyName + ".dll");
if (assembly != null)
{
return assembly.GetManifestResourceStream(resourceName);
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
的VirtualPathProvider:
public class SVirtualPathProvider : …Run Code Online (Sandbox Code Playgroud) virtualpathprovider partial-views embedded-resource asp.net-mvc-3
对于ASP.Net MVC应用程序,我有兴趣在数据库中存储一些视图和/或部分视图,以便一些半技术用户可以执行一些基本的视图逻辑.有没有人有这方面的经验或教训?
我知道Phil Haack大约一年前写了一篇博文.他使用IronRuby来编写他的观点,(这对我来说没问题).他创建了一个快速概念验证,但我找不到关于该主题的任何其他信息.
任何想法,想法,提示等将不胜感激.
谢谢!
ScottGu提到我们应该能够从数据库加载一个Razor视图(查看评论部分),那么有没有人有一个如何做到这一点的例子?
谢谢.