【问题标题】:Razor - Inline helper with multiple tagsRazor - 具有多个标签的内联助手
【发布时间】:2013-06-09 21:51:12
【问题描述】:

我可以调用一个接受 HTML/Razor 块作为参数的方法,如下所示:

@Html.SiteText(@<div>Some content</div>)

由于解析器错误,调用具有多个顶级标记的同一方法失败。即。

@Html.SiteText(@<div>Some content</div><div>Some more content</div>)

失败: Compiler Error Message: CS1026: ) expected

有没有办法传递一个有多个顶级标签的 Razor 助手?

编辑:

这是 SiteText 扩展方法的签名:

public static IHtmlString SiteText(this HtmlHelper htmlHelper, Func<object, HelperResult> content)

方法的实际实现无关紧要,因为这适用于方法的调用方式,而不是实现对输入的作用。

【问题讨论】:

  • 你能把代码发到@Html.SiteText()吗?干杯。
  • @JasonEvans 我无法发布所有实现,因为它是专有的,但我已将方法签名添加到问题中。实现应该无关紧要,因为我的问题是关于如何从 Razor 调用该方法,而不是关于实现对输入的作用。谢谢!

标签: asp.net-mvc razor helpers


【解决方案1】:

查看它的简单方法是 Razor 视图引擎将这些 div 标签中的每一个视为单个属性。

将它们包装在 text 标记中应该可以解决问题:

@Html.SiteText(@<text><div>Some content</div><div>Some more content</div></text>)

【讨论】:

    【解决方案2】:

    未测试,但我怀疑这会解决它:

    @Html.SiteText(@<text>
        <div>Some content</div>
        <div>Some more content</div>
    </text>)
    

    【讨论】:

    • 你的答案是正确的,但我接受了另一个,因为它是第一个,对不起!
    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 2023-01-25
    • 2017-03-22
    • 1970-01-01
    • 2012-02-23
    • 2017-03-22
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多