我正在研究HtmlHelper.AnonymousObjectToHtmlAttributes
.
它适用于匿名对象:
var test = new {@class = "aaa", placeholder = "bbb"};
var parseTest= HtmlHelper.AnonymousObjectToHtmlAttributes(test);
结果parseTest
有两个键值对。
但对于Dictionary
对象:
var attrsInDict = new Dictionary<string,object>() {
{"class", "form-control"},
{"placeholder", "Select one..."}
};
var attrs = HtmlHelper.AnonymousObjectToHtmlAttributes(attrsInDict );
得到的attrs
是一个奇怪的对象,有 4 个 Keys 和 4 个 Values。这 4 个键是Comparer、Count、Keys、Values。
其他一些 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);
}
}