C# 如何将多行HTML作为参数传递

C# 如何将多行HTML作为参数传递,c#,asp.net-mvc,razor,html-helper,C#,Asp.net Mvc,Razor,Html Helper,我需要将HTML作为参数传递给HTML助手方法(例如:Telerik的KendoUIMVC包装器中的ClientTemplate) 基本上,我尝试通过以下步骤: <ul class="list-unstyled"> <li>Foo</li> <li>Bar</li> <li>Baz</li> </ul> 福 酒吧 巴兹 我试过这个: .Template(@<tex

我需要将HTML作为参数传递给HTML助手方法(例如:Telerik的KendoUIMVC包装器中的ClientTemplate)

基本上,我尝试通过以下步骤:

<ul class="list-unstyled">
    <li>Foo</li>
    <li>Bar</li>
    <li>Baz</li>
</ul>
  • 酒吧
  • 巴兹
我试过这个:

.Template(@<text>
    <ul class="list-unstyled">
        <li>Foo</li>
        <li>Bar</li>
        <li>Baz</li>
    </ul>
</text>.ToString()))
.Template(@
  • 酒吧
  • 巴兹
.ToString())
我得到这个错误

CS1660无法将lambda表达式转换为类型“string”,因为它不是委托类型

我知道使用
“…
  • Foo
  • Bar
  • 是可能的,但我想知道是否有更好的方法,如剃须刀

    多亏了,我有了这个解决方案:

    助手方法

    public static string RazorTemplateHelper(Func<object, HelperResult> template)
    {
        return template.Invoke(null).ToString();
    }
    
    public静态字符串RazorTemplateHelper(Func模板)
    {
    返回template.Invoke(null).ToString();
    }
    
    剃须刀

    .Template(RazorTemplateHelper(@<text>
        <ul class="list-unstyled">
            <li>Foo</li>
            <li>Bar</li>
            <li>Baz</li>
        </ul>
    </text>))
    
    .Template(RazorTemplateHelper)(@
    
    • 酒吧
    • 巴兹
    ))
    “我需要将HTML作为参数传递给HTML助手方法”-为什么?无论如何,为什么不将其作为字符串传递(因此,
    )?因为我希望语法Highlightning和其他Html助手在其中发挥作用@引号在哪里。模板(@“
    • Foo
    • Bar
    • Baz
    ”)是,如果是HTML,则将其作为字符串传递。如果您想维护razor标记,请检查此项:非常感谢@AshishEmmanuel