Как включить атрибут класса только в один тег привязки из нескольких тегов привязки в таблице в пользовательском контроле MVC? - PullRequest
0 голосов
/ 08 марта 2011

У меня есть пользовательский элемент управления в mvc 2.0, где у меня есть таблица тегов привязки, созданная с помощью Html.ActionLink(title,action,controller).Теперь из этих нескольких якорных тегов к каждому будет применен определенный класс, каков наилучший способ сделать это?

Дарин :) Используя это, мне придется применить условную логикув самом представлении я должен применить класс только к одному из нескольких тегов привязки, основанных на действии.В этом случае мне придется 20 раз проверить, является ли это действие, если у меня есть 20 тегов привязки.Мне нужно что-то вроде унаследованного класса от ActionLink, который будет проверять действие и применять класс, основанный на нем, только к одному из тегов привязки.

1 Ответ

1 голос
/ 08 марта 2011

Существует перегрузка , которая позволяет передавать атрибуты html, такие как класс CSS:

<%= Html.ActionLink(title, action, controller, null, new { @class = "foo" }) %>

UPDATE:

Вы также можете написать собственный помощник ActionLink, который будет выполнять эту работу:

public static class HtmlExtensions
{
    public static MvcHtmlString MyActionLink(
        this HtmlHelper htmlHelper,
        string linkText,
        string actionName,
        string controllerName
    )
    {
        if (SomeLogic())
        {
            // If some logic is verified you could apply the CSS class
            return htmlHelper.ActionLink(
                linkText, 
                actionName, 
                controllerName, 
                null,
                new { @class = "foo" }
            );
        }
        return htmlHelper.ActionLink(
            linkText, 
            actionName, 
            controllerName, 
        );
    }
}

, а затем, по вашему мнению:

<%= Html.MyActionLink(title, action, controller) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...