Как представить простые ссылки HTML у Asp. Сетевой цикл MVC?

Это - раздел страницы справочника. Из памяти разделите 1, пользовательские программы, 2 системные вызовы, и 3 вызовы стандартной библиотеки для C, и 5 форматы файлов.

Википедия имеет полное объяснение здесь .

16
задан Joannes Vermorel 26 October 2009 в 13:12
поделиться

4 ответа

Вы ничего не упускаете, но хороший подход - создать метод расширения в HtmlHelper:

public static class HtmlHelpers
    {

        public static string SimpleLink(this HtmlHelper html, string url, string text)
        {
            return String.Format("<a href=\"{0}\">{1}</a>", url, text);
        }

    }

, затем вы можете использовать его следующим образом:

<tr>
        <td>
            <%= Html.Encode(item.Id) %>
        </td>
        <td>
            <%= Html.SimpleLink(item.Url,item.Text) %>
        </td>
    </tr>

[править] Забыл добавить. Чтобы использовать этот расширитель HtmlHelper во всем приложении, вам необходимо добавить следующее в файл веб-конфигурации:

<system.web>
      <pages>
         <namespaces>
            <!-- leave rest as-is -->
            <add namespace="theNamespaceWhereHtmlHelpersClassIs"/>
        </namespaces>
      </pages>
    </system.web>
15
ответ дан 30 November 2019 в 15:38
поделиться

Я бы предпочел использовать

<td><a href="<%= item.Url %>">link</a></td>

, кажется мне несколько "чище", но я думаю, что ваш подход не менее хорош.

3
ответ дан 30 November 2019 в 15:38
поделиться

Думаю, это хорошо. Простой foreach выполняет роль повторителя в MVC.

2
ответ дан 30 November 2019 в 15:38
поделиться

Мне нравится реализовывать это так, как это делает фреймворк MVC, используя класс tag builder. Таким образом я могу передавать через параметр htmlAttributes для добавления таких вещей, как класс или другие атрибуты:

public static MvcHtmlString HtmlLink(this HtmlHelper html, string url, string text, object htmlAttributes)
{
 TagBuilder tb = new TagBuilder("a");
 tb.InnerHtml = text;
 tb.MergeAttributes(new RouteValueDictionary(htmlAttributes));
 tb.MergeAttribute("href", url);
 return MvcHtmlString.Create(tb.ToString(TagRenderMode.Normal));
}

Может показаться излишеством просто для генерации ссылки, но это означает, что вам не придется возиться с шаблонами формата строки для вставки дополнительных HTML-атрибутов в ссылку

27
ответ дан 30 November 2019 в 15:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: