大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC从数据库加载Razor视图,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
谢谢。
在另一个页面的FileExists()方法中,使用一些实际检查的数据库代码来替换测试代码,以查看virtualPath在数据库中是否有一个条目。你的数据库看起来像:
Views --tablename Path --view's virtual path SomeOtherValue
public class DbPathProvider : VirtualPathProvider { public DbPathProvider() : base() { } public override bool FileExists(String virtualPath) { Database db = new Database(); return db.Views.Any(w => w.Path == virtualPath); } public override VirtualFile GetFile(String virtualPath) { return new DbVirtualFile(virtualPath); } }
现在我们修改DbVirtualFile
public class DbVirtualFile : System.Web.HosTing.VirtualFile { public DbVirtualFile(String path) : base (path) { } public override System.IO.Stream Open() { Database db = new Database(); return new System.IO.MemoryStream( db.Views.Single(v => v.Path == this.VirtualPath)); } }
如果不想要,virtualPath不必与真实的文件系统相对应。您可以通过实现这两个类来覆盖功能。
然后,您可以在global.asax中注册新的VirtualPathProvider,如此
HosTingEnvironment.RegisterVirtualPathProvider(new DbPathProvider());
我希望这个更好地回答你的问题。
以上是大佬教程为你收集整理的asp.net-mvc – ASP.NET MVC从数据库加载Razor视图全部内容,希望文章能够帮你解决asp.net-mvc – ASP.NET MVC从数据库加载Razor视图所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。