2012-10-10 89 views
1

我想将下拉列表中的存储值显示为选定的值。我不知道如何在MVC中做到这一点。从数据库的下拉列表中选择的值

我的代码是

<%: Html.DropDownList("basic-qualification-container" + i.ToString(), 
     new SelectList((IEnumerable<Dial4Jobz.Models.Degree>)ViewData["CandidateBasicQualifications"], "Id", "Name", (IEnumerable<int>)ViewData["BasicQualificationDegrees"]), 
     new { @class = "qualification" })%> 

我从下拉式选项部分,并提交。加载页面后,将显示最后存储的值。这是我的问题。

+0

我不明白..您是否想要在返回帖子时放置默认选项? – MuriloKunze

+0

你想设置什么选定的值? –

回答

0

DropDownList的助手在SomeAction查看

Html.DropDownList(
    string name, 
    IEnumerable<SelectListItem> selectList, 
    ViewData["lastSelected"], // String Selected Option 
    object htmlAttributes) 

您可以用可视数据显示选定的值象下面这样。

控制器

// Set Default selected 
public ActionResult SomeAction() 
{ 
    ViewData["lastSelected"] = "Default Text"; 
    return View(); 
} 

和POST之后,你应该重新设置可视数据是在选定的值表示。

// Set selected value after posting 
[HttpPost] 
public ActionResult SomeAction() 
{ 
    ..... 
    ViewData["lastSelected"] = "Changed Text (selected value)"; 
    return View(); 
} 
1

您可能正在为selectedValue参数发送错误的值。您应该在SelectList构造函数中设置该值。

<%: Html.DropDownList("basic-qualification-container" + i.ToString(), 
     new SelectList((IEnumerable<Dial4Jobz.Models.Degree>)ViewData["CandidateBasicQualifications"], 
         "Id", 
         "Name", 
         ViewData["selectedValue"]), //set selected value here 
     new { @class = "qualification" })%> 

更好的方法是将ViewData中的所有数据放入模型中,并将其强制输入到视图中。

这里是你如何定义你的模型:

public class SampleModel 
{ 
    private string SelectedOption { get; set; } 
    private IEnumerable<SelectListItem> Options { get; set; } 
} 

然后提供值动作方法:

public ActionResult Index() 
{ 
    //get data from db 
    SampleModel model = new SampleModel 
          { 
           SelectedOption = selectedOption, 
           Options = new SelectList(options, "Id", "Name") 
          }; 
    return View(model); 
} 

强烈输入您查看到的SampleModel可以使用Html.DropDownListFor帮手后在你看来。

<%: Html.DropDownListFor(model => model.SelectedOption, 
         Model.Options, 
         new { @class = "qualification" }) %> 
相关问题