首页 文章

使用 MVC3/Razor 渲染模板化的 HtmlHelper

提问于
浏览
0

我有一个 HtmlHelper 将网格呈现为表格,在 MVC2 中我会使用以下语法从视图中调用它...

<%=
    Html.MyLibrary().Grid<MyGridItem>()
        .Name("MyGrid")
        .Width("100%")
        .Render()
%>

请注意它使用模板。在使用 Razor 的 MVC3 中,它不会编译,似乎因为左尖括号'<'被混淆为 html。为了解决这个问题,我可以用花括号括起来......

@{Html.MyLibrary().Grid<MyGridItem>()
        .Name("MyGrid")
        .Width("100%")
        .Render();}

但现在问题是从.Render()返回的字符串没有放入输出流!

任何帮助解决这个问题将非常感激。

1 回答

  • 0

    你应该使用 Html.Raw()方法。

    @Html.Raw(Html.MyLibrary().Grid<MyGridItem>()
            .Name("MyGrid")
            .Width("100%")
            .Render())
    

    @ {。 3}服务器端块不会被渲染,因为它是简单的服务器端代码。如果你写的话也一样

    @{ "renderedstring".ToString(); }
    

相关问题