我应该如何在MVC用户控件中的表中的几个锚标记中仅包含一个类标记?

时间:2011-03-08 16:42:23

标签: .net asp.net-mvc-2

我在mvc 2.0中有一个用户控件,其中我有一个使用Html.ActionLink(title,action,controller)创建的锚标签表。现在用这几个锚标签,一个将应用特定的类,这是最好的方法是什么?

  

Darin :)使用这个,我将不得不在视图中应用条件逻辑,我必须根据动作将类应用于几个锚标记中的一个。在这种情况下,如果我有20个锚标记,我将不得不检查20次这是否是动作。我想要一些像ActionLink这样的继承类,它将检查操作并将基于它的类仅应用于其中一个锚标记。

1 个答案:

答案 0 :(得分:1)

overload允许您传递html属性,例如CSS类:

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

更新:

您还可以编写一个自定义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) %>