asp.net-mvc – ASP.NET MVC从数据库加载Razor视图
发布时间:2020-05-23 15:10:10 所属栏目:asp.Net 来源:互联网
导读:ScottGu提到,我们应该能够到 load a Razor view from a database(查看评论部分),有没有人有这样做的例子? 谢谢。 您可能需要检查 Pulling a View from a database rather than a file或 Using VirtualPathProvider to load ASP.NET MVC views from DLLs 从
|
ScottGu提到,我们应该能够到 load a Razor view from a database(查看评论部分),有没有人有这样做的例子? 谢谢。 解决方法您可能需要检查 Pulling a View from a database rather than a file或 Using VirtualPathProvider to load ASP.NET MVC views from DLLs从我以前的问题的代码,关于这个问题。 在另一个页面的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 – “动态”路由的最佳方法
- 如何检测ASP.NET应用程序中的SqlServer连接泄漏?
- asp.net – 如何在WebPage中显示嵌入的Excel文件?
- asp.net-mvc – 在默认路由的ASP.NET MVC中的Url.Content的
- asp.net-mvc – 使用Html.RouteLink添加一个css类
- ASP.NET推送重定向会话超时
- asp.net – Outputcache:VaryByHeader =“User-Agent”或V
- asp.net-mvc-3 – Structuremap,AutoFac或Ninject,哪一个适
- asp.net – 如何使用webgrease?
- asp.net结合Ajax验证用户名是否存在的代码
