【问题标题】:Razor tag inside Html.Raw(...)Html.Raw(...) 中的 Razor 标记
【发布时间】:2015-05-12 07:10:41
【问题描述】:

是否可以在Html.Raw() 中渲染 Razor?我正在生成一个动态页面,它使用Html.Raw() 方法来呈现在控制器中创建的页面。我的原始 html 中有剃刀标签。也就是说,我正在尝试通过

生成链接
@Html.Raw(Model.myRawHtmlContainingRazorTags);

Model.myRawHtmlContainingRazorTags 包含在哪里

<html>
...
...
@Model.TheLink
...
...
<html>

当在 cshtml 中调用 @Html.Raw(Model.myRawHtmlContainingRazorTags) 时,我需要呈现 Model.TheLink 的值。

【问题讨论】:

    标签: c# asp.net asp.net-mvc razor render


    【解决方案1】:

    您可能会遇到一些架构问题,导致您的模型属性上有一些剃刀代码。

    无论如何,您可以通过使用一些外部库来做到这一点,例如RazorTemplates

    这是一个示例:

    var template = Template.Compile(Model.myRawHtmlContainingRazorTags);
    @Html.Raw(template.Render(Model));
    

    【讨论】:

    • 我有一个生成原始 HTML 列表的 API。单击列表中的项目,使用某些参数重定向页面。从当前 HTML 页面获取参数。参数在当前 HTML 中以隐藏字段的形式出现。调用 API 并将原始 HTML 分配给模型。然后将此模型传递给视图。现在列表中的项目再次具有剃刀内容,从而导致出现此问题。我在这里做错了吗?
    • 对我来说似乎不寻常的是您的 API 生成包含 Razor 标记的原始 HTML。如果您可以将其更改为提供视图名称而不是原始 html,则使用 RenderPartial 等工具进行渲染会更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多