Html.Encode ничего не возвращает - PullRequest
2 голосов
/ 15 апреля 2009

Я не могу заставить это работать, я хочу показать простой список имен исполнителей, но всегда получаю пустые ссылки обратно.

foreach (Artist artist in Model)
{%>
    <a href="gotosomewhere"><% Html.Encode(artist.Name); %></a>
<%} 

Я отладил его, и я уверен, что Модель содержит список художников.

Спасибо, Питер

Ответы [ 2 ]

17 голосов
/ 15 апреля 2009

Измените его на:

<%= Html.Encode( artist.Name ) %>

Обратите внимание на "равно" и отсутствие закрывающей точки с запятой. Этот формат используется для вывода строкового значения в ответ. Другой формат просто выполняет код в контексте страницы, но не выполняет автоматическую запись в ответ.

1 голос
/ 15 апреля 2009

Действительно, синтаксис <% some code %> в ASP.NET переводится довольно просто, чтобы «выполнить этот код».

Синтаксис <%= some code %> в ASP.NET переводится как Response.Write(some code).

Исходя из этого, становится понятно, почему <% Html.Encode(...); %> ничего не возвращает. Он кодирует ваш текст, но никто не пишет его в ответ! С <%= Html.Encode(...) %> компилятор ASP.NET превращает его в Response.Write(Html.Encode(...)), который, очевидно, запишет закодированный текст в ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...