asp.net-mvc - 使用 CSS 时如何使用 Action Link

标签 asp.net-mvc html css razor asp.net-mvc-4

<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 种可能性:

  1. 修改您的 CSS,这样您就不需要链接内的跨度,这样 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>
    

关于asp.net-mvc - 使用 CSS 时如何使用 Action Link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12210193/

相关文章:

html - 如何使两个按钮大小相同?

html - 在 JSP 应用程序中基于 CSS 实现参数化外观的最佳方式是什么?

asp.net-mvc - 如何使用ASP.NET MVC根据网站部分设置不同的web.config默认错误页面

c# - 类型 'IEnumerable<>' 在未引用的程序集中定义

asp.net-mvc - 寻找对呈现局部 View 的 Controller 扩展进行单元测试的方向

javascript - 使用 JS HTML 和 CSS 将 "night time"处的图像交换为任何时区?

c# - 在 Entity FrameWork 中为多种用途映射相同的模型类

javascript - 无法使用 htaccess 加载 css、js 和图像

jquery - 停止向上滑动 DC jQuery 垂直 Accordion 菜单上的当前元素

javascript - 更改传单图层控件图标