2011-12-15 17 views
4

可能性の重複:この出力を生成するカスタムMVC3 ActionLinkのメソッドを作成する方法
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> 
+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(リンクタグの要件を含む)をリンクにレンダリングできます。このヘルパー拡張メソッドは、MvcHtmlStringオブジェクトを返す必要があります。

creating HTML helperの1つの例がここにあります。

関連する問題