2012-10-10 150 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" }) %> 
相關問題