我在asp.net mvc中有一个表单,用于从数据库中检索记录。这个表格有下拉菜单。在控制器的编辑操作中,必须选择已插入的项目。假设我正在将用户信息用于编辑,那么必须在之前插入其城市,州和国家时选择。
所以我尝试编辑:
int CityId_ = objAM.GetCityName(User.CityId);
ViewData["Cites"] = new SelectList(City.GetAllCities(), "CityId", CityName", CityId_);
同样的国家和州。虽然CityId_有价值,但似乎没有。它默认来自第一个城市(所有人都一样),为什么会这样?
我刚刚找到了blog,我发现,分配的第三个参数名称应该在对象的属性中。但是我要说我有主要和Fk的关系,但是列名不同,那么MVC强耦合功能似乎失败了。为什么会这样?
答案 0 :(得分:0)
我遇到了同样的问题,这就是我在编辑记录时让我的下拉列表在下拉列表中选择正确的值所做的。
Team team = _db.TeamSet.First(m => m.TeamID == id);
ViewData["FantasyYear"] = new SelectList(fanYear, "YearID", "FantasyYear", team.FanYearReference.EntityKey.EntityKeyValues[0].Value);
这是我看到这一切可以完成的唯一方式。您必须传递refernced表的entitykey和键值。由于我是MVC的新手,我不能很好地分解这行代码。 fanYear是IEnumerable项目。 YearID是下拉列表中的值(引用表中的键列),“FantasyYear”是下拉列表的显示文本。团队是我正在编辑的表。我相信我正在建立对FanYear表的引用并获得团队的幻想年份关键。它告诉它年度的关键价值。我不确定为什么需要[0]。
希望这会有所帮助。