gpt4 book ai didi

c# - 如何合并 Html.ActionLink (MVC3) 的 htmlAttributes?

转载 作者:太空狗 更新时间:2023-10-30 00:27:14 24 4
gpt4 key购买 nike

我将编写一个简单的帮助器来包装 Html.ActionLink 并向其添加特定的类属性。目前它看起来像:

@helper MyActionLink(string text, string action, object routeValues, object htmlAttributes)
{
@Html.ActionLink(text, action, routeValues, new { @class = "MyClass" })
}

它实际上添加了所需的@class 属性,但忽略了所有传递的htmlAttributes。所以,如果像这样使用

@MyActionLink("Item1", "Edit", new { itemId = 1 }, new { @class = "class1" })

输出

<a class="MyClass" href="/Test/Edit?itemId=1">Item1</a>

但我希望它有 2 个类:class="class1 MyClass"

如何合并那些 htmlAttributes?

最佳答案

试试这个片段

@helper MyActionLink(string text, string action, object routeValues, object htmlAttributes)
{
var attributes = (IDictionary<string, object>) HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
object cssClass;
if(attributes.TryGetValue("class", out cssClass) == false)
{
cssClass = "";
}
attributes["class"] = cssClass + " MyClass";

@Html.ActionLink(text, action, new RouteValueDictionary(routeValues), attributes)
}

关于c# - 如何合并 Html.ActionLink (MVC3) 的 htmlAttributes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7329041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com