如何创建自定义MVC3 ActionLink方法?

Dav*_*bak 4 c# asp.net-mvc asp.net-mvc-3

可能重复:
如何将span元素放入ActionLink MVC3中?

如何创建生成此输出的自定义MVC3 ActionLink方法:

<li>
    <a href="/Home/ControllerName" data-ajax-update="#scroll" 
     data-ajax-mode="replace" data-ajax-method="GET" 
     data-ajax-loading="#progress" data-ajax="true">

     <span>LinkText</span> // this span generated inside <a>

    </a>
</li>
Run Code Online (Sandbox Code Playgroud)

And*_*lad 7

您可以创建一个新的扩展方法来返回MvcHtmlString您自己组合的对象(但请注意html编码),我们创建一个可以在需要时呈现的局部视图,因此您不必通过码.

public static class MyHtmlExtensions {
    public static MvcHtmlString MyActionLink(this HtmlHelper html, string action, string controller, string ajaxUpdateId, string spanText) {
         var url = UrlHelper.GenerateContentUrl("~/" + controller + "/" + action);
         var result = new StringBuilder();
         result.Append("<a href=\"");
         result.Append(HttpUtility.HtmlAttributeEncode(url));
         result.Append("\" data-ajax-update=\"");
         result.Append(HttpUtility.HtmlAttributeEncode("#" + ajaxUpdateId));
         // ... and so on

         return new MvcHtmlString(result.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)