2016-01-19 30 views
1

我需要將HTML作爲參數傳遞給Html Helper方法(例如Telerik的Kendo UI MVC包裝器中的ClientTemplate)。如何傳遞多行HTML作爲參數

Basicly我嘗試過這樣的:

<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())) 

我得到這個錯誤

CS1660 Cannot convert lambda expression to type 'string' because it is not a delegate type

我知道這是可能的"...<li>Foo</li><li>Bar</li>..."但我想知道是否有更好的方法,如剃刀<text>

+0

_「我需要通過HTML作爲參數傳遞給一個html幫手法「_ - 爲什麼?無論如何,爲什麼不把它作爲一個字符串然後(所以'「

    ...
」')? – CodeCaster

+1

因爲我想要Syntax Highlightning和其他Html Helpers的好處。 @CodeCaster –

+0

引號在哪裏? .Template(@ 「

  • 酒吧
  • 巴茲
  • 」)) – Michael

    回答

    2

    感謝Ashish Emmanuel's comment,我有這樣的解決方案:

    helper方法

    public static string RazorTemplateHelper(Func<object, HelperResult> template) 
    { 
        return template.Invoke(null).ToString(); 
    } 
    

    剃刀

    .Template(RazorTemplateHelper(@<text> 
        <ul class="list-unstyled"> 
         <li>Foo</li> 
         <li>Bar</li> 
         <li>Baz</li> 
        </ul> 
    </text>))