【发布时间】:2012-06-13 06:20:10
【问题描述】:
我在DropDownListFor 中看到了一件奇怪的事情。这是我的观点的一部分:
1:<dt>
2: @Html.LabelFor(model => model.MainModel.DefaultAreaId)
3:</dt>
4:<dd>
5: @Html.DropDownListFor(model => model.MainModel.DefaultAreaId, Model.FKs["DefaultAreaId"].Items, new { @class = "Areadd" })
6: @Html.ValidationMessageFor(model => model.MainModel.DefaultAreaId, null, new { @class = "invalid-side-note" })
7:</dd>
我签入调试我的控制器的最后一行:return View(model); 而Model.FKs["DefaultAreaId"].Items 的值是:
0: {Title="t1", value=13, Selected = false},
1: {Title="t2", value=15, Selected = false},
2: {Title="t3", value=17, Selected = false},
3: {Title="t4", value=16, Selected = true}
我也检查了上面视图的第 2 行,值是一样的,但是在第 5 行之后 DropDownListFor 值更改为:
0: {Title="t1", value=13, Selected = false},
1: {Title="t2", value=15, Selected = false},
2: {Title="t3", value=17, Selected = false},
3: {Title="t4", value=16, Selected = false}
我无法理解 DropDownListFor 和我的模型值会发生什么?我也在同一个视图中使用相同的方式:
11:<dt>
12: @Html.LabelFor(model => model.MainModel.DefaultControllerId)
13:</dt>
14:<dd>
15: @Html.DropDownListFor(model => model.MainModel.DefaultControllerId, Model.FKs["DefaultControllerId"].Items, new { @class = "Controllerdd" })
16: @Html.ValidationMessageFor(model => model.MainModel.DefaultControllerId, null, new { @class = "invalid-side-note" })
17:</dd>
一切都很好,我也更改了DefaultAreaId 的名称,但没有任何改变。
那么有人对此有任何解释吗?这里发生了什么?
如果需要,我可以复制我所有的视图、控制器和模型。
更新
在控制器中:
List<SelectListItem> Areas = new List<SelectListItem>();
Areas.Add(new SelectListItem { Text = "t1", Value = "13", Selected = false });
Areas.Add(new SelectListItem { Text = "t2", Value = "15", Selected = false });
Areas.Add(new SelectListItem { Text = "t3", Value = "17", Selected = false });
Areas.Add(new SelectListItem { Text = "t4", Value = "16", Selected = true });
Model.FKs.Add("DefaultAreaId", new ForeignKey { Title = "area", Items = Areas });
Fks:
public Dictionary<string, ForeignKey> FKs { get; set; }
而ForeignKey 是:
public class ForeignKey {
public string Title { get; set; }
public List<SelectListItem> Items { get; set; }
}
【问题讨论】:
-
能否补充一下如何获得物品??
-
@Wahid Bitar 我更新问题
标签: asp.net-mvc asp.net-mvc-3 html-helper html.dropdownlistfor