2012-10-17 35 views
4

我成功地将值保存到数据库(标题值)上,但是当我在编辑模式下渲染相同的视图时,标题字段必须保存选定的值,但在我的情况下标题下拉列表中没有选择任何值...不知道为什么我在标题字段保存存储值(在后端)时没有选择任何内容的下拉列表。Html.DropDownListFor在编辑模式下未选择的值

@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; 

    } 
+1

可能你正在将char()保存到数据库中,如果是这样,那么在编辑模式下,你会得到空格和文本......检查是否是这种情况。 – RollerCosta

+2

不,我正在使用nvarchar() – Ankit

回答

2

你要使用的SelectList

的另一个构造函数从msdn

SelectList(IEnumerable, String, String, Object) 

使用 指定项初始化的SelectList类的新实例列表,数据值字段,数据文本 字段和选定值

然后:

@Html.DropDownListFor(model => model.title, 
         new SelectList(Model.titles, "Value", "Text", Model.title), 
         "-Select-") 

顺便说一句,这是一般遵循基本的标准是个好主意(至少):你的财产应该由一个大写字符开始。

public string Title {get;set;} 
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); 
    } 
+0

这将不会做什么特别的.... – RollerCosta

相关问题