Вспомогательное расширение HTML работает, если я делаю <% = ..%>, но не если я делаю <% Html.MyExt (); %> - PullRequest
1 голос
/ 16 июня 2010

Почему мое расширение html-помощника работает, если я выполняю:

<%= Html.MyExt() %>

все помощники mvc работают следующим образом:

<% Html.TextBox(""); %>

Мое расширение создает StringBuilder, а затем возвращает строку.

Ответы [ 2 ]

6 голосов
/ 16 июня 2010

Этот помощник должен возвращать строку (ASP.NET MVC 1.0) или MvcHtmlString (ASP.NET MVC 2.0), которая записывается в поток ответов (с использованием Response.Write):

<%= Html.MyExt() %>

Этот помощник ничего не возвращает (void), он просто выполняет метод расширения:

<% Html.TextBox(""); %>
1 голос
/ 16 июня 2010

<%= command %> запускает команду и печатает возвращенную строку. Команда должна вернуть строку.

<% command; %> просто запускает команду. Все, что возвращается командой, будет проигнорировано.

Большинство HTML-помощников, которых я видел, используют первый формат.

...