我想创建一个动态对象数组,类似于JSON模式。我使用它来允许我的Breadcrumb
类接受定义输出特性的论证。我认为它看起来像这样
breadcrumbs.Add(new Breadcrumb() {
Title = "Page name",
Attributes = { class = "myclass", data-info="info stuff" }
});
当我显示breadcrum以输出类似这样的内容时,我会迭代遍历这个数组
<a href="" title="Page name" class="myclass" data=info="into stuff">...</a>
问题是我是否可以动态地执行此操作而无需创建锅炉板代码,即BreadcrumAttribute
,可以指定属性名称,然后指定数据。
我在MVC.NET的其他地方看到了类似的模式,但不记得它在哪里......
答案 0 :(得分:4)
你可以使用这样的匿名类型:
breadcrumbs.Add(new Breadcrumb() {
Title = "Page name",
Attributes = new { @class = "myclass", datainfo="info stuff" }
});
data-info
不允许作为属性名称,因此我将其更改为datainfo
,您也可以将其命名为data_info
或将其定义为Dictionary<string,string>
并使用它:
breadcrumbs.Add(new Breadcrumb() {
Title = "Page name",
Attributes = new Dictionary<string, string>() { { "class", "myclass" }, { "data-info", "info" } }
});
答案 1 :(得分:1)
Make Breadcrumb.Attributes Dictionary
class Breadcrumb {
public string Title;
public Dictionary<string,string> Attributes;
}
然后..
var breadcrumbs = new List<Breadcrumb>
{
new Breadcrumb()
{
Title = "Page name",
Attributes =
new Dictionary<string, string>
{
{"class", "myclass"},
{"data-info", "info stuff"}
}
}
};