【问题标题】:Parse Html string with Razor使用 Razor 解析 Html 字符串
【发布时间】:2019-01-08 09:39:57
【问题描述】:

我有一个使用 asp.net 核心标签助手生成动态 html 代码的应用程序,例如

   <input type="hidden" asp-for="Id" />
   <input asp-for="Name" />
   <input asp-for="IsActive" />

我将这个 html 代码从数据库返回到控制器,我需要用 asp.net 核心的 Razor 引擎解析它,当然还需要传递一个模型让引擎从中获取数据,我该怎么做?

【问题讨论】:

标签: asp.net-mvc asp.net-core .net-core asp.net-core-mvc asp.net-core-2.0


【解决方案1】:

解决此问题的一种可能方法是创建一个访问数据库的自定义 IFileProvider。

这是一个解释如何的博客文章,但它有点旧: https://www.mikesdotnetting.com/article/301/loading-asp-net-core-mvc-views-from-a-database-or-other-location

当前的官方 FileProvider 文档在这里:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/file-providers?view=aspnetcore-2.2

这将使用数据库中的内容模拟一个虚拟文件系统,然后可以像使用任何 cshtml 文件一样使用这些视图(例如,作为部分视图)

【讨论】:

  • IFileProvider接口有一个方法return IFileInfo叫GetFileInfo,不返回物理文件信息怎么实现呢?
  • 它接缝你的想法是正确的选择我发现这篇文章解释了如何做到这一点mikesdotnetting.com/article/301/…
【解决方案2】:

我最终创建了一个自定义文件提供程序,它从数据库中获取视图,这个链接解释了它 https://www.mikesdotnetting.com/article/301/loading-asp-net-core-mvc-views-from-a-database-or-other-location

【讨论】:

    【解决方案3】:

    定义模型

        public class Model {
           Id, Name...
        }
    

    @Html.Raw(your html template)
    

    【讨论】:

    • 他不是在寻找显示 HTML 代码的选项。他需要通过 TagHelper 解析它。
    • 不完全是,我只需要用 razor 解析它以从模板生成 html 代码,不需要从 Tag Helpers 中进行,例如 Razor 解析这个 模型包含 Name="Mahmoud" 到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2012-05-22
    • 1970-01-01
    • 2016-10-12
    相关资源
    最近更新 更多