2011-12-15 3 views
4

Можно создать дубликат:
How to put span element inside ActionLink MVC3?Как создать собственный метод MVC3 ActionLink?

Как создать пользовательский метод 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> 
+0

Пожалуйста, не повторяйте тот же вопрос, который вы только задали здесь http://stackoverflow.com/questions/8518109/how-to-put-span-element-inside-actionlink-mvc3 – Maheep

ответ

7

Вы либо создать новый метод расширения, который возвращает 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()); 
    } 
} 
2

Вам понадобится создать специальный HTML-помощник для бритвы. Таким образом вы можете визуализировать собственный HTML (включая ваше требование тега span) для вашей ссылки. Этот метод вспомогательного экстента должен возвращать объект MvcHtmlString.

Один пример для creating HTML helper можно найти здесь.

Смежные вопросы