Рендеринг шаблонного HtmlHelper с MVC3 / Razor - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть HtmlHelper, который отображает сетку в виде таблицы, в MVC2 я бы назвал ее из представления, используя следующий синтаксис ...

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

Обратите внимание, что он использует шаблоны.В MVC3 с Razor он не будет компилироваться, по-видимому, потому что левая угловая скобка '<' запутана для html.Чтобы обойти это, я могу заключить его в фигурные скобки ... </p>

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

, но теперь проблема в том, что строка, возвращаемая из .Render (), не помещается в выходной поток!

Любая помощь в решении этой проблемы будет высоко оценена.

1 Ответ

0 голосов
/ 12 апреля 2011

Вы должны использовать метод Html.Raw ().

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

Блок @ {...} на стороне сервера не обрабатывается, поскольку это простой код на стороне сервера. То же самое, если вы написали

@{ "renderedstring".ToString(); }
...