所选项目未显示在“编辑表单”的下拉列表中

时间:2014-12-15 08:44:50

标签: asp.net-mvc-4

例如:我同时添加表单和编辑表单。当我在下拉列表中添加详细信息时,它已成功保存在数据库中。当我选择编辑时,所选项目未显示在下拉列表中。

我在EditPartial中使用的代码。

@Html.DropDownListFor(m => m.Language_ID,(List<SelectListItem>)ViewBag.LanguageList,null, new { type = "text", Class = "validate[required] form-control smheight", style = " font-size:11px; padding-top:3px" })

控制器代码

var _tableLanguage = db.LANGUAGES_TABLE.Select(_Log => new SelectListItem
{ 
  Text = _Log.Languages,
  Value = SqlFunctions.StringConvert((decimal)_Log.Language_ID) }
).ToList();
_tableLanguage.Insert(0, new SelectListItem { Text = "Select", Value = "0" });
ViewBag.LanguageList = _tableLanguage;
var items = new SelectList(db.LANGUAGES_TABLE.ToList(), "Language_ID", "lang");
ViewData["Language_ID"] = items;

模型

public partial class LANGUAGE_PROFFICIANCY
{
    public int Language_Proficiency_ID { get; set; }
    public Nullable<int> Candidate_ID { get; set; }
    public Nullable<int> Language_ID { get; set; }
}

1 个答案:

答案 0 :(得分:0)

将控制器代码更改为

ViewBag.LanguageList = new SelectList(db.LANGUAGES_TABLE, "Language_ID", "Languages");

并删除以下

var items = new SelectList(db.LANGUAGES_TABLE.ToList(), "Language_ID", "lang");
ViewData["Language_ID"] = items;

并将视图更改为

@Html.DropDownListFor(m => m.Language_ID, (SelectList)ViewBag.LanguageList, "Select", new {...});

如果属性Language_ID的值与您的某个选项值的值匹配,则会在视图中选择它

另请注意,您的html属性无效。 type = "text"毫无意义 - 它是<select>元素,而不是<input type="text" ..>元素。 Class = "validate[required]也没有意义(不确定你认为这会做什么)