Как изменить рендеринг ссылок в ASP.NET MVC? - PullRequest
0 голосов
/ 21 января 2010

Наши дизайнеры придумали стили кнопок для приложения, которое требует добавления тегов внутри тегов наших ссылок.

В ASP.NET мы реализовали это, добавив запись App_Browsers для кнопок ссылок.

Как мне поступить в ASP.NET MVC?

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

Есть ли хороший элегантный способ сделать это?

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

Ответы [ 2 ]

1 голос
/ 21 января 2010

Вы всегда можете написать один метод расширения, который принимает в качестве аргумента еще один (один из встроенных) и оборачивает <span> вокруг текста ссылки перед его вызовом. Это должно быть довольно легко сделать с лямбдами ...

public static string SpanLink(this HtmlHelper helper,
    string linkText, object args, Action<string> action) 
    where TController : IController
{
    action("<span>" + linkText + "</span>", args);
}

И назвать это:

<%= Html.SpanLink<HomeController>("link text", (s) => Html.ActionLink<HomeController>(c => c.Index(s));

(Этот код вводится непосредственно в поле ответа SO - я даже не проверял его, чтобы убедиться, что он компилируется. Так что терпите меня, если он не работает с первой попытки ...)

1 голос
/ 21 января 2010

На самом деле я думаю, что написание нового помощника - это именно то, что я бы сделал. Мне кажется, что это именно то, для чего они здесь, и это делает их очень пригодными для повторного использования.

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