に取り組んでいましたHtmlHelper.AnonymousObjectToHtmlAttributes
。
匿名オブジェクトでうまく機能します:
var test = new {@class = "aaa", placeholder = "bbb"};
var parseTest= HtmlHelper.AnonymousObjectToHtmlAttributes(test);
結果parseTest
には 2 つのキーと値のペアがあります。
しかし、Dictionary
オブジェクトの場合:
var attrsInDict = new Dictionary<string,object>() {
{"class", "form-control"},
{"placeholder", "Select one..."}
};
var attrs = HtmlHelper.AnonymousObjectToHtmlAttributes(attrsInDict );
得られたのattrs
は、4 つのキーと 4 つの値を持つ奇妙なオブジェクトです。4 つのキーはComparer、Count、Keys、Valuesです。
2つの違いについて尋ねる他のSO投稿(ここ)。選択された答えは言う
差がありすぎない…
本当に?attrsInDict
そして、匿名オブジェクトから取得したものと同じ結果を解析して取得する正しい方法は何ですか?
次のコードで属性をマージするつもりです。
var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
foreach (var item in attrs)
{
if (attr.ContainsKey(item.Key))
{
attr[item.Key] = $"{attr[item.Key]} {item.Value}";
}
else
{
attr.Add(item.Key, item.Value);
}
}