3

我在干净的 HTML 中有这个链接。我想把它变成一个 MVC ActionLink。但这怎么可能。我无法理解,似乎没有简单的方法。或者?

<li class="active"><a href="#"><i class="icon-home icon-large"></i> Dashboard</a></li>

有任何想法吗?

4

3 回答 3

13

你有几个选项可以做到这一点。

选项1:

<li class="active"><a href="@Url.Action("YourAction", "YourController")"><i class="icon-home icon-large"></i> Dashboard</a></li>

选项 2:

为 HtmlHelper 编写自己的扩展方法,该方法接受 String/MvcHtmlString 并将其放入链接标记中,无需 html 对其进行编码。

public static MvcHtmlString SpecialActionLink(this HtmlHelper html, String action, String controller, String innerHtml) {
    TagBuilder tag = new TagBuilder("a");
    tag.MergeAttribute("href", new UrlHelper(html.ViewContext.RequestContext).Action(action, controller));
    tag.InnerHtml = innerHtml;
    return new MvcHtmlString(tag.ToString(TagRenderMode.Normal));
}

(尚未对其进行测试,但应该让您了解如何操作。)

于 2012-08-02T07:41:20.120 回答
6
<li class="active">


    @Html.ActionLink("Dashboard", //Title
                    "Index",      // Action
                    "Home",       // Controller
                    new { @class = "home-icon"}  // htmlAttributes 
                    )

</li>


.home-icon{   /*Some CSS to set the background image (not tested) */
   padding:16px;
   background:transparent url('path-to-image.png') .... ;
}
于 2012-08-02T07:44:54.663 回答
1

您不能使用 ActionLink。唯一的方法是@url.action

<a href="@Url.Action("View","Article",new {area="",id=id})"><span>This is a test</span></a>
于 2014-06-05T13:04:37.407 回答