我提供額外的過載RadioButtonFor並希望將鍵值對添加到在傳遞的HTML屬性。我如何轉換匿名對象HTML屬性的詞典<字符串,對象>
由於
new { id = "someID" }
當我使用的好像是我發現的建議),其產生與4項與鍵的字典中HtmlHelper.AnonymousObjectToHtmlAttributes法「的Comparer:我傳遞類似的例子「,」計數「,」鍵「,」值「。然後我嘗試使用Reflection遍歷「Keys」和「Values」中的值,但無法使其工作。
基本上我想要做的就是能夠將htmlAttributes強制轉換爲IDictionary,添加一個項目並將其傳遞給常規的RadioButtonFor方法。
編輯: 繼承人我真的想要做什麼。提供一個稱爲isDisabled的重載,以便能夠設置單選按鈕的禁用狀態,因爲無法直接使用HTML屬性直接完成此操作,因爲disabled = false stillr esults會禁用正在呈現以標記和禁用收音機。
public static MvcHtmlString RadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object value, bool isDisabled, object htmlAttributes)
{
var linkAttributes = System.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
Dictionary<string, object> htmlAttributesDictionary = new Dictionary<string, object>();
foreach (var a in linkAttributes)
{
if (a.Key.ToLower() != "disabled")
{
htmlAttributesDictionary.Add(a.Key, a.Value);
}
}
if (isDisabled)
{
htmlAttributesDictionary.Add("disabled", "disabled");
}
return InputExtensions.RadioButtonFor<TModel, TProperty>(htmlHelper, expression, value, htmlAttributesDictionary);
}
'RadioButtonFor()'已經有一個重載的html屬性。你究竟在做什麼?顯示你的方法的代碼。 –
更新的問題與實際代碼 –