我最初使用IDictonary在我的MVC模型中存储字符串值 - 如下所示:
public IDictionary<string, string> MyValues { get; set; }
MyValues = new Dictionary<string, string>
{
{"Name", "Joe Bloggs"},
{"Address", "Main Street"}
};
以上是在我的模型构造函数中设置的,当我通过执行模型时,我还设置了其他值:
var model = new MyModel();
model.MyValues .Add("foo", "bar");
在我看来,我有以下内容:
@{
var myValues = Model.MyValues.ToList();
for (int i = 0; i < myValues .Count(); ++i)
{
@Html.Hidden("Id", myValues[i].Key)
@Html.Hidden("Value", myValues[i].Value)
}
}
我现在需要更改此功能,而不是使用元组
进行IDictoinary实现到目前为止,我刚刚更改了模型中的MyValues:
public IEnumerable<Tuple<string, string>> MyValues { get; set; }
我不确定如何实现我在模型构造函数中使用的相同功能,在模型中设置其他值,然后在视图中枚举它。
答案 0 :(得分:4)
这很简单:
MyValues = new List<Tuple<string,string>>
{
Tuple.Create("Name", "Joe Bloggs"),
Tuple.Create("Address", "Main Street")
};
和
model.MyValues.Add(Tuple.Create("foo", "bar"));
和
@{
var myValues = Model.MyValues;
foreach (var tuple in myValues)
{
@Html.Hidden("Id", tuple.Item1);
@Html.Hidden("Value", tuple.Item2);
}
}
但您应该将MyValues
从IEnumerable
更改为IList
或ICollection
更好,以便可以添加。