<li class="rtsLI" id="Summary"><a href="javascript:void(0);" onclick="javascript:rtsXXX.OnClientTabSelected(this, 0);" class="rtsLink"><span class="rtsTxt">Test</span></a></li>
上面我将替换为以下操作链接:
<li class="rtsLI" >@Html.ActionLink("test1", "Index", new { Area = "Area1", Controller = "controller1" }, new { @class = "rtsLink rtsTxt"})</li> "
起初 css 工作正常。但是当使用 Actionlink 时,css 不起作用。谢谢
最佳答案
标准的 ActionLink 助手总是对链接文本进行 HTML 编码。这意味着如果您想在内部呈现 HTML,则不能使用它。您有 3 种可能性:
- 修改您的 CSS,这样您就不需要链接内的跨度,这样
rtsTxt
类就可以直接应用于链接 编写一个不对文本进行 HTML 编码的自定义 ActionLink 帮助器,它允许您生成相同的标记:
public static class ActionLinkExtensions { public static IHtmlString ActionLinkUnencoded( this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, object htmlAttributes ) { var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext); var link = new TagBuilder("a"); link.MergeAttributes(new RouteValueDictionary(htmlAttributes)); link.Attributes["href"] = urlHelper.Action(actionName, routeValues); link.InnerHtml = linkText; return new HtmlString(link.ToString()); } }
然后:
<li> @Html.ActionLinkUnencoded( "<span class=\"rtsTxt\">User Security</span>", "index", new { area = "Tools", controller = "UserSecurity" }, new { @class = "rtsLink" } ) </li>
使用 Url.Action 助手:
<li class="rtsLI"> <a href="@Url.Action("index", new { area = "Tools", controller = "UserSecurity" })" class="rtsLink"> <span class="rtsTxt">User Security</span> </a> </li>
关于asp.net-mvc - 使用 CSS 时如何使用 Action Link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12210193/