2013-07-01 62 views
1

我已經寫了一個小的擴展方法HTML輔助庫如下:如何將自定義參數傳遞給像MVC html.routeurl中的函數?

public static MvcHtmlString Image(this HtmlHelper htmlHelper, string url, string alt) 
{ 
    var img = new TagBuilder("img"); 
    img.MergeAttribute("src", url); 
    img.MergeAttribute("alt", alt); 
    return new MvcHtmlString(img.ToString(TagRenderMode.SelfClosing)); 
} 

我想改變它,因爲我需要,我可以添加參數。喜歡的東西:

public static MvcHtmlString Image(this HtmlHelper htmlHelper, string url, object htmlParameters) 
{ 
    var img = new TagBuilder("img"); 
    img.MergeAttribute("src", url); 

    //Now I would like to extract the properties (and their values) from the object 
    //and add them to img. 

    return new MvcHtmlString(img.ToString(TagRenderMode.SelfClosing)); 
} 

我想使這個功能一般,並通過與自定義屬性的object和這些屬性適用於img標籤。就像我們將htmlParameters傳遞給ActionLink輔助方法一樣。

@Html.ActionLink("link text", "actionName","controllerName", new {@class = "class"}) 

這是什麼技巧?

回答

2

您可以通過使用下面的代碼提取出來:

var attributes = (IDictionary<string, object>) HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes) 
img.MergeAttributes<string, object>(attributes, replaceExisting:true); 

希望這有助於。

+0

正好。非常感謝 – Aamir

+0

很高興解決您的問題;) – saber

相關問題