我成功地能够在插入时将值保存到数据库(标题值),但是当我在编辑模式下渲染相同的视图时,标题字段必须保持所选的值,但在我的情况下,标题下拉列表中没有选择任何值。 .dont知道为什么我得到一个没有选择的下拉列表,而title字段保存了存储的值(在后端)。
@Html.DropDownListFor(model => model.title, new SelectList(Model.titles, "Value", "Text"),"-Select-") // nothing selected on edit mode
@Model.title //displaying the stored value which the user selected initially.
标题值
titles = new SelectList(ListItem.getValues().ToList(), "Value", "Text").ToList();
getValue函数
public static List<TextValue> getValues()
{
List<TextValue> titles= new List<TextValue>();
TextValue T= new TextValue();
T.Value = "Mr";
T.Text = "Mr";
titles.Add(T);
T= new TextValue();
T.Value = "Mrs";
T.Text ="Mrs";
titles.Add(T);
T= new TextValue();
T.Value = "Miss";
T.Text = "Miss";
titles.Add(T);
T= new TextValue();
T.Value ="Other";
T.Text = "Other";
titles.Add(T);
return titles;
}
答案 0 :(得分:3)
你必须使用SelectList的另一个ctor
来自msdn
SelectList(IEnumerable, String, String, Object)
使用。初始化SelectList类的新实例 列表的指定项目,数据值字段,数据文本 字段和选定值。
然后:
@Html.DropDownListFor(model => model.title,
new SelectList(Model.titles, "Value", "Text", Model.title),
"-Select-")
顺便说一句,遵循基本标准(至少)通常是个好主意:你的属性应该以大写字母char开头。
public string Title {get;set;}
答案 1 :(得分:0)
查看:
@Html.DropDownListFor(model => model.title, Model.titles, "-Select-")
控制器:
Model.titles = new SelectList(ListItem.getValues(), "Value", "Text");
public static List<SelectListItem> getValues()
{
List<SelectListItem> titles= new List<SelectListItem>();
SelectListItem T= new SelectListItem();
T.Value = "Mr";
T.Text = "Mr";
titles.Add(T);
T = new SelectListItem();
T.Value = "Mrs";
T.Text = "Mrs";
titles.Add(T);
T = new SelectListItem();
T.Value = "Miss";
T.Text = "Miss";
titles.Add(T);
T = new SelectListItem();
T.Value = "Other";
T.Text = "Other";
titles.Add(T);
return titles;
}
public ActionResult Edit(int sno)
{
var model = db.table.SingleOrDefault(x => x.sno == sno);
return View(model);
}