SelectList上的选定项目返回第一个项目

时间:2014-09-03 14:51:06

标签: c# .net asp.net-mvc linq user-interface

我使用LINQ表达式获得了一个列表:

List<RegionViewModel> regionList = (from rs in db.Regions   
                                   select new RegionViewModel
                                   {
                                      RegionId = rs.RegionId,
                                      RegionName = rs.RegionName
                                   }).ToList();

,此列表的数据为:

RegionId                                RegionName
1A349553-E07E-4051-8E07-0144490282BF    Bangalore
1D0DA75D-D9C6-4787-9529-4F0BC2280112    USA
4F756192-4FCE-493A-9126-556F131FDBB2    Manila
E81D6D99-D4A8-4806-8718-B8552EA90FD2    Kolkata
402C0EC4-D085-4E09-9D0F-EE72AD104A41    Delhi
1DAC67BB-F2F8-4353-9BB1-FFA4B22B439D    Global

我试图将列表分配给一个包含所选项目为加尔各答的视图包:

ViewBag.Regions = new SelectList(regionList, "RegionId", "RegionName", Guid.Parse("E81D6D99-D4A8-4806-8718-B8552EA90FD2"));

这是我在View上的下拉列表:

Html.DropDownList("Regions", (SelectList)ViewBag.Regions, new { @class = "dropDown-field" })

ISSUE: 渲染时,下拉列表将显示所选项目班加罗尔,该项目应该是加尔各答,

请告知我错过了什么。提前谢谢

1 个答案:

答案 0 :(得分:2)

我认为你会以Guid作为字符串引导,因为html将呈现一个字符串,并且它不知道如何使用Guid来处理样本。

将RegionId更改为字符串。

List<RegionViewModel> regionList = (from rs in db.Regions   
                                   select new RegionViewModel
                                   {
                                      RegionId = rs.RegionId.ToString(),
                                      RegionName = rs.RegionName
                                   }).ToList();

ViewBag.Regions = new SelectList(regionList, "RegionId", "RegionName", "E81D6D99-D4A8-4806-8718-B8552EA90FD2");

当您收到帖子上的值时,您可以使用Guid.Parse

再次将字符串解析为Guid