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

标签 c# asp.net-mvc asp.net-mvc-3

<分区>

Possible Duplicate:
How to put span element inside 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>

最佳答案

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

关于c# - 如何创建自定义 MVC3 ActionLink 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518527/

相关文章:

asp.net-mvc - ASP.NET MVC在新窗口中打开pdf文件

c# - 获取asp.net mvc网站中的本地文件路径

asp.net-mvc-3 - 处理 OnResultExecuted 引发的错误

c# - 从 plink 获取重定向输出

asp.net-mvc - .Net Web API 为 404/400 响应抛出异常/返回响应/返回错误响应?

dll - 当前上下文中不存在名称 'ViewBag'

asp.net-mvc - 由 javascript 更新的 asp.net mvc 禁用文本框不会发布新值

c# - typeof(DateTime?).Name == Nullable`1

c# - 将自托管 SignalR 后端部署到 Azure

c# - 我应该在 C# 中将 XML 生成为字符串吗?