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

C# 如何创建自定义MVC3 ActionLink方法?,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,可能重复: 如何创建生成此输出的自定义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>LinkTe

可能重复:

如何创建生成此输出的自定义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编码),您可以创建一个局部视图,在需要时可以进行渲染,这样您就不必通过代码创建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());
        }
    }
    
    公共静态类MyHtmlex{
    公共静态MvcHtmlString MyActionLink(此HtmlHelper html、字符串操作、字符串控制器、字符串ajaxUpdateId、字符串文本){
    var url=UrlHelper.GenerateContentUrl(“~/”+controller+“/”+action);
    var result=新的StringBuilder();
    
    result.Append(“您必须为razor创建一个自定义HTML帮助程序。这样,您可以为链接呈现自定义HTML(包括您对span标记的要求)。此帮助程序扩展方法必须返回一个MvcHtmlString对象


    这里可以找到一个例子。

    请不要重复您只在这里问过的同一个问题