ASP.NET MVC 从数据库加载 Razor 视图

2023-11-27

ScottGu 提到我们应该能够从数据库加载 Razor 视图(查看评论部分),那么有人有关于如何做到这一点的示例吗?

Thanks.


您可能想检查从数据库而不是文件中提取视图 or 使用 VirtualPathProvider 从 DLL 加载 ASP.NET MVC 视图

从我之前关于该主题的问题中获取代码。

In your 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));
    }
}

如果您不希望,虚拟路径不必对应于真实的文件系统。您可以通过实现这两个类来重写功能。

然后,您可以像这样在 global.asax 中注册新的 VirtualPathProvider

HostingEnvironment.RegisterVirtualPathProvider(new DbPathProvider());

我希望这能更好地回答你的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 从数据库加载 Razor 视图 的相关文章

  • 我可以在 ASP.NET MVC 中使用 [CompressFilter] 而不破坏甜甜圈缓存吗

    我正在努力获得 压缩过滤器 http www thegrubbsian com p 202 使用甜甜圈缓存并遇到问题 发生的情况是整个页面都被缓存 而不仅仅是甜甜圈 的来源CompressFilter我正在使用的是下面的 我从原始来源 ht
  • .NET ServiceModel.Syndicate - 更改 RSS 源的编码

    我正在尝试解决我在以下位置生成的所有 RSS 源的错误http captainobvio us http captainobvio us在 Internet Explorer 版本 8 和 9 中产生以下错误 进给代码错误 从当前切换 编码
  • 将视频上传/保存到数据库或文件系统

    我以前从未尝试过保存视频 所以我对此了解不多 我知道如果视频很小 我可以转换为字节数组并保存到数据库 但是为了提高效率 我想了解如何将任何上传的视频保存到我的服务器文件中 然后只保存该文件的文件路径我的数据库表中的视频 我完全不知道如何开始
  • 保护 ASP.NET MVC 应用程序中的 ajax 调用的安全

    我有一个基于 ASP NET MVC 的应用程序 它允许根据用户进行不同级别的访问 当前的工作方式是 当用户访问页面时 会根据数据库进行检查以确定用户拥有的权限 然后根据用户拥有的访问级别选择视图 有些用户比其他用户看到更多数据并拥有更多可
  • 使用 MVC 3 中的 Razor View 引擎从部分视图渲染部分

    我在底部主布局中渲染了一个部分 这通常是在页面渲染时在页面底部渲染 javascript 的部分 在 View 和 partial 视图中定义该部分 页面呈现时 它会从页面视图呈现部分 但不会从 partial 视图呈现部分 如何将 par
  • 如何访问Web api控制器中的mvc控制器以从视图中获取pdf

    我为单页 Web 应用程序创建了 Web Api 和 MVC 组合 我想调用 Web api 并渲染 mvc 控制器以使用 Rotativa api 从视图创建 pdf 问题是当我在 Web api 中访问 mvc 控制器时它不起作用 我如
  • MVC中无法从ViewBag中提取数据

    我试图在提交之前从 ViewBag 中提取数据并通过 JS 将其插入表单隐藏字段中 这不起作用 在调试时 我发现 JS 表达式的一部分被忽略了 因此 var 被评估为空字符串 这是 JS 部分 它应该执行分配 function setid
  • 选中哪个复选框(控制器)并列出结果

    我是 ASP NET MVC 新手 我正在制作一个在线视频商店应用程序 我有这样的看法 用户可以在其中选择要租借的视频 视图的代码 model IEnumerable
  • 在 var 中渲染多个空格

    我试图在我的 var 中添加多个空格 但它被削减为一个空格或者呈现出来 仿佛 我尝试过使用 20 有人还有其他想法吗 ViewBag Subheading 曝光 我希望它看起来像这样 曝光 ViewBag Subheading Bringi
  • 实体框架:在运行时更改连接字符串

    假设有一个 ASP NET MVC 应用程序使用 Entity Framework 6 和代码优先方法以及 StructureMap 作为 IoC 它还使用工作单元模式 域类 public class Product public int
  • MVC 3 Razor _ViewStart 中的公共变量

    我正在 MVC 3 附带的新 Razor 引擎上构建一个网站 并且喜欢新语法 但是 我对使用公共属性 常量感到不知所措 我知道使用 WebForms 我们可以在代码后面添加公共属性 public string ImageFolder get
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 您如何填充/验证您的 ViewModel?

    我很好奇人们构建 ViewModel 的各种方式以及他们为什么选择该方法 我在这里可以想到几种方法 1 注入存储库 控制器加载模型并映射到 ViewModel 这里 ViewModel 构造函数可以采用各种集合来进行内部设置 在选择列表中
  • MVC 5 中的“缓存配置文件”

    我是 MVC 的初学者 我有一个项目要从 MVC2 转换到最新版本的 MVC 我读了一些关于MVC 4的书 所以我开始了解主要机制 但是 在转换我的 MVC 2 解决方案时 我遇到了一个属性问题 OutputCache 例如 我有多个这样的
  • 在 ASP.Net MVC 中的同一视图中分离两个表单

    我已将创建帐户视图和登录视图合并到同一视图中 所以这是一个具有两种表单的视图 但是当我提交时它们会混合在一起 如果我尝试登录并显示错误 Html ValidationSummary 两种形式都会出现错误 我开始将字段重命名为 loginPa
  • ASP.NET MVC 母版页数据

    我使用 ASP NET MVC 越多 我就越喜欢它 然而 在母版页上显示模型数据的情况下 似乎有多种方法可以实现 我不确定最佳解决方案 我的示例是一个商业网站 我想在每个页面上输出产品类别列表 并显示访问者购物车的状态 在 ASP NET
  • ASP.NET Core 中的 HttpRuntime.AppDomainAppPath 等效项

    相当于什么HttpRuntime AppDomainAppPath在 NET Core 中 我将一个项目从 ASP NET 移至 core 并且没有包含一些库 例如System Web 这是一个小例子 sb AppendLine New P
  • 实体框架 - 实体类型之间的关联已被切断问题

    您好 当我尝试删除 绑定 表中的一行时 我遇到了实体框架问题 这些表看起来像这样 Table Users public class UserEntity BaseEntity Required MaxLength 30 public str
  • 自定义角色提供程序不实现继承的抽象成员

    我需要一些帮助在 ASP NET MVC 应用程序中实现自定义角色提供程序 问题是我遇到了几个错误 例如 MyRoleProvider does not implement inherited abstract member System
  • 将 Web API 添加到 asp.net MVC 项目时出现问题(追溯)

    我正在 Visual Studio 2013 中使用 asp net mvc 迈出第一步 但遇到了一个奇怪的问题 我以 MVC 的形式启动了我的项目 并且没有选中 Web API 框来包含核心参考 不过现在我想使用 Web API 功能 我

随机推荐

  • 带有 Kubernetes 客户端插件的 Jenkins - NoSuchMethodError

    将 jenkins 插件 Kubernetes Client 升级到版本 1 30 3 也适用于 1 31 1 后 当我开始构建时 我在 jenkins 日志中收到以下异常 Timer task org csanchez jenkins p
  • 删除流星身份验证的登录令牌

    我不确定以前是否有人问过这个问题 但是loginTokens变得非常大并且没有任何清理会使我的数据库大小增加 对此我们正在做什么 其他人正在做什么来管理这个问题 我指的是默认的Meteor users services其中有一个loginT
  • 使用Cgroups限制cpu使用

    我正在尝试使用 cgroups 来限制 CPU 使用率 我正在使用本指南https access redhat com documentation en US Red Hat Enterprise Linux 6 html Resource
  • 无法从使用本地类型参数化的另一个包中实现来自另一个包的泛型类型的特征

    此测试代码 playpen use std fmt Display Formatter Error struct MyLocalType type MyResult Result
  • 在java中绘制圆的切片?

    我想通过一个实心圆来表示一个计时器 该实心圆是在计时器的过程中逐段完全绘制的 IE 如果在 4 秒计时器内每 1 秒填充一次圆圈 第一个将显示四分之一圆 然后是半圆 然后是四分之三 最后是一个完整的圆 有没有办法在java中绘制这些圆的切片
  • 在 hbase shell 上执行 ValueFilter 或 ColumnFilter

    谁能告诉我如何从 hbase shell 命令行执行限定符过滤器或 ValueFilter 它与使用任何编程语言进行编码的方式非常相似 例如 import org apache hadoop hbase filter CompareFilt
  • Hadoop mapReduce 如何在 HDFS 中仅存储值

    我用它来删除重复的行 public class DLines public static class TokenCounterMapper extends Mapper
  • 字符串池行为

    我读了这个关于Java字符串池的问题并了解字符串池的基本概念 但仍然不了解其行为 第一 如果直接赋值并且 s1 和 s2 都引用池中的同一个对象 它就可以工作 String s1 a bc String s2 ab c System out
  • 阻止元素参与文本选择

    我有一些源代码 pre code 行号在单独的 div 选择文本后 行号会随之出现 并随后被复制 即使我选择源代码块上方和下方的元素 是否有任何方法可以防止行号成为选择的一部分 为了那些关闭 JavaScript 的人的利益 我想避免使用
  • System.arrayCopy 很慢

    我一直在尝试测量 System arrayCopy 与 Arrays copyOf 的性能 以便正确选择其中之一 只是为了基准测试 我还添加了手动复制 结果令我惊讶 显然我错过了一些非常重要的东西 你能告诉我它是什么吗 实现如下 见前4种方
  • 为什么长长联合成员的对齐比包含的联合/结构更大?它是否正确?

    From 这个问题人们可能会开始相信 一个联盟的联盟不小于其单个成员的最大联盟 但我有一个问题long long输入 gcc g 完整的例子可以找到here 但以下是我的问题的相关部分 union ull long long m struc
  • C# 加权随机数

    我需要游戏编程方面的帮助 你打开一个箱子 并以给定的概率找到一个物品 物品 机会 A 10 B 30 C 60 Random random new Random int x random Next 1 101 if x lt 11 Numb
  • Ruby 拒绝正确划分

    我只是想得到一个百分比 irb main 001 0 gt 25 50 100 gt 0 正如我的计算器所证实的那样 这绝对应该等于 50 将相同的方程复制并粘贴到 gcalc 中 为什么 Ruby 拒绝这样做 它正在做整数除法 基本上 2
  • LINQ 列表到句子格式(插入逗号和“and”)

    我有一个 linq 查询 它执行一些简单的操作 例如 var k people Select x gt new x ID x Name 然后我想要一个函数或 linq lambda 或者使用逗号和 and 以句子格式输出名称的东西 1 Jo
  • 程序完成后分支预测器条目失效?

    我试图了解分支预测器条目何时无效 以下是我所做的实验 Code1 start measure branch mispred while X times if something something do useless endif endw
  • 如何将 JavaFX 2 中场景图形的内容输出到图像

    如何输出a的内容SceneJavaFX 2 中的图表到Image 事实上 我正在开发一个应用程序 它基本上是设计卡片的 因此 用户只需单击各种选项即可自定义场景 最后我想将场景内容导出到图像文件 我怎么做 在 FX 2 2 中出现了新的快照
  • 从 Xamarin Android 上的另一个 Activity 启动一个 Activity

    我发现这个 java 代码可以创建一个通用方法来从其他活动启动任何活动 public void gotoActivity Class activityClassReference Intent i new Intent this activ
  • 如何通过点击html元素获取xpath

    我对编程很陌生 必须在单击 html 元素时生成 Xpath 例如 如果我单击了用户名的文本框 那么它应该给我类似的 xpath html head body tr 1 table 2 等等等等 最主要的是我不能使用 firebug 因为我
  • 我可以检查现在是否有 UIAlertView 显示吗? [复制]

    这个问题在这里已经有答案了 我可以在 iOS 应用程序的任何部分检查当前是否显示 UIAlertView 吗 我找到了这段代码 NSClassFromString UIAlertManager performSelector selecto
  • ASP.NET MVC 从数据库加载 Razor 视图

    ScottGu 提到我们应该能够从数据库加载 Razor 视图 查看评论部分 那么有人有关于如何做到这一点的示例吗 Thanks 您可能想检查从数据库而不是文件中提取视图 or 使用 VirtualPathProvider 从 DLL 加载