我在ASP.NET MVC上有以下ViewModel:
public CategoryNewViewModel {
public Int32 Type { get ; set; }
public IDictionary<String, String> Descriptions { get; set; }
}
描述键是语言,描述值是文本。
在视图中,我需要渲染N个输入,每种语言一个......
提交表单后,Descriptions属性将变为:
"en", "The description in english"
"pt", "A descrição em português"
"fr", "La description en français"
一个问题是我不确定在视图中会有多少输入。
有谁知道这种绑定是否可行?
答案 0 :(得分:0)
我认为我找到了很好的绑定字典方式,它实际上就是你所需要的。
在ASP.NET MVC 4中,默认模型绑定器将使用典型的字典索引器语法property[key]
绑定字典。
如果模型中有Dictionary<string, string>
,您现在可以使用以下标记直接绑定到它:
<input type="hidden" name="MyDictionary[MyKey]" value="MyValue" />
例如,如果要使用一组复选框来选择字典元素的子集并绑定回同一属性,则可以执行以下操作:
@foreach(var kvp in Model.MyDictionary)
{
<input type="checkbox" name="@("MyDictionary[" + kvp.Key + "]")"
value="@kvp.Value" />
}
从此question =)
中被盗