我知道我可以使用一个类添加到@ Html.Actionlink,它一次作用于单个 Actionlink:
@Html.ActionLink("Add",
"UpdateNote",
"Notes",
new { id = 0, type = (int)THOS.Utilities.Enumerations.Enumerations.Note.RelatedApplicationType.Law, appid = ((ObjectModelLibrary.Law)ViewData["currentLaw"]).LawID, baseappid = ((ObjectModelLibrary.Law)ViewData["currentLaw"]).LawID }
new { @class = "btn btn-primary icon-edit"},
null)
有没有一种定义类的方法(就像在css文件中为所有div添加样式一样:
div{
color: red;
}
^ ^
| |
this way will act on *all* divs
而不是
<div class="myClass"></div>
我可以写:
<div></div>
会自动包含color:red
是否有办法为ActionLink定义一个类,而无需访问每个actionlink并输入@Class="myClass"
为所有按钮实例添加样式:
input[type="button"]{
background-color:red;
}
我可以这样做:
input[type="actionlink"]{
//styles for all actionlinks in project
}
所以所有的动作链接都可以写成:
@ Html.ActionLink( “行动”, “控制器”)
并自动包含我的css文件中所述的样式?
我会以第一种方式做到这一点,但我已经做过100次而没有定义一个类,并且不喜欢复制和粘贴:
class="myClass"
答案 0 :(得分:0)
ActionLink只生成普通锚点,因此您可以编写:
a{
color:red;
}
但要获得ActionLinks,您需要通过类或容器调用它们。
也可能更好的方法是创建自定义ActionLink并在其中放置一个默认类,并使用此类可以执行选择器,这样您就可以使用这个新的自定义ActionLink而无需复制粘贴类
public static class LinkExtensions
{
public static MvcHtmlString MyActionLink(
this HtmlHelper htmlHelper,
string linkText,
string action,
string controller
)
{
var currentAction = htmlHelper.ViewContext.RouteData.GetRequiredString("action");
var currentController = htmlHelper.ViewContext.RouteData.GetRequiredString("controller");
if (action == currentAction && controller == currentController)
{
var anchor = new TagBuilder("a");
anchor.Attributes["href"] = "#";
anchor.AddCssClass("currentPageCSS");
anchor.SetInnerText(linkText);
return MvcHtmlString.Create(anchor.ToString());
}
return htmlHelper.ActionLink(linkText, action, controller);
}
}
%= Html.MyActionLink("hello foo", "Index", "Home") %>
<%= Html.MyActionLink("hello bar", "About", "Home") %>
复制的代码