如何创建自定义 MVC3 操作链接方法

本文关键字:MVC3 操作 链接 方法 自定义 何创建 创建 | 更新日期: 2023-09-27 18:17:51

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

如何创建自定义 MVC3 操作链接方法生成此输出:

<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>

如何创建自定义 MVC3 操作链接方法

你要么创建一个新的扩展方法,返回一个你自己组合在一起的MvcHtmlString对象(不过注意html编码(,我们创建一个部分视图,你可以在需要时呈现它,所以你不必通过代码创建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());
    }
}

您必须为 razor 创建自定义 HTML 帮助程序。这样,您就可以为链接呈现自定义 HTML(包括您对 span 标记的要求(。此帮助程序扩展方法必须返回 MvcHtmlString 对象。

可以在此处找到创建 HTML 帮助程序的一个示例。