【发布时间】:2016-05-02 20:35:29
【问题描述】:
我正在处理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 帖子询问两者之间的区别(here)。选择的答案说
没有太大区别……
真的吗?解析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);
}
}
【问题讨论】:
标签: c# asp.net-mvc dictionary anonymous-objects