0
<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 不起作用。谢谢

4

3 回答 3

2

标准的 ActionLink 帮助程序总是对链接文本进行 HTML 编码。这意味着如果你想在里面渲染 HTML,你就不能使用它。您有 3 种可能性:

  1. 修改你的CSS,这样你就不需要在链接中使用span,这样rtsTxt类就可以直接应用于链接
  2. 编写一个不对文本进行 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>
    
  3. 使用 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>
    
于 2012-08-31T07:32:18.617 回答
0

这样写代码:

<li class="rtsLI" >@Html.ActionLink("<span class='rtsTxt'>User Security</span>", "Index", new { Area = "Tools", Controller = "UserSecurity" }, new { @class = "rtsLink"})</li>`
于 2012-08-31T07:04:33.870 回答
0

最好的选择是使用@Url.Action扩展方法

<li class="rtsLI" id="Summary"><a href="@Url.Action("Index", new { Area = "Tools", Controller = "UserSecurity" })" class="rtsLink"><span class="rtsTxt">User Security</span></a></li>
于 2012-08-31T07:32:39.147 回答