2012-07-12 53 views
0

如何合併此自定義擴展方法中的選項?在自定義ajaxhelper中合併ajax選項

public static MvcHtmlString ActionLink(this AjaxHelper html, 
        string linkText, 
        string actionName,       
        object htmlAttributes, 
        AjaxOptions options) 
    { 
     RouteValueDictionary attributes = new RouteValueDictionary(htmlAttributes); 


     TagBuilder linkTag = new TagBuilder("a");   

     UrlHelper url = new UrlHelper(html.ViewContext.RequestContext); 

     linkTag.Attributes.Add("href", url.Action(actionName)); 



     return MvcHtmlString.Create(linkTag.ToString(TagRenderMode.Normal)); 
    } 
} 
+0

你還沒有非常使它清楚你想要達到的目標。你的擴展的目的是什麼?跨度在哪裏進入? – 2012-07-12 12:06:24

+0

我正在編寫生成自定義操作鏈接的方法。跨度只是名稱而已 – maztt 2012-07-12 12:10:52

回答

1

AjaxOptions只是一個類。你可以設置你自己的屬性。我建議使用現有的Ajax幫助程序,並首先更改AjaxOptions。所以:

public static MvcHtmlString ActionLinkWithSpan(this AjaxHelper html, 
         string linkText, 
         string actionName, 
         object htmlAttributes, 
         AjaxOptions options) 
{ 
    RouteValueDictionary attributes = new RouteValueDictionary(htmlAttributes); 
    // Add more attributes here if you want 

    options.InsertionMode = InsertionMode.InsertBefore; // As an example. Or amend any others here. 

    return html.ActionLink(linkText, actionName, attributes, options); 
} 
0

可以合併AjaxOptions的鏈接標籤作爲,

linkTag.MergeAttributes(ajaxOptions.ToUnobtrusiveHtmlAttributes()); 

此外,您可以合併爲HTML屬性,

linkTag.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));