2013-12-23 73 views
-1

請任何機構告訴新手如何在多個值中顯示下拉列表中的特定值。例如,我在我的下拉列表中有印度,澳大利亞,中國和英國,而且我已將該國更新爲中國,因此當下一次有人查看詳細信息時,他會看到中國的下拉列表。代碼如下所示:代碼如下:如何顯示從數據庫檢索的MVC下拉列表中的值

@Html.DropDownList("list",ViewData["list"] as SelectList) 
            @Html.ValidationMessageFor(model => model.Country) 

和代碼的.cs頁面如下:

var list = new SelectList(new[] 
              { 
               new {ID="0",Name="Select"}, 
               new{ID="1",Name="Australia"}, 
               new{ID="3",Name="United States"}, 
               new {ID="4",Name="United Kingdom"}, 
               new{ID="5",Name="Europe"}, 
               new{ID="6",Name="Canada"}, 
               new {ID="7",Name="India"}, 
               new {ID="8",Name="China"}, 
               new{ID="9",Name="Japan"}, 
               new{ID="10",Name="New Zealand"}, 
              }, 
          "ID", "Name", 1); 
      ViewData["list"] = list; 
+1

爲什麼你給我減,說明 – Learner

+1

@fealin Bawli boonch..Now看到編輯的代碼,請 – Learner

+0

我真的不明白你的態度。我不是那個低估了這個問題的人。我不確定,你這樣的反應會讓你得到你想要的。我認爲你應該嘗試一個搜索引擎。試試這些條款。如何在DropDownList中選擇一個值 – fealin

回答

1

這是一種不使用ViewData的一個解決方案,但使用的ViewModels行動的方法和觀點之間傳輸數據。假設您正在嘗試編輯客戶記錄。所以,你將有一個視圖模型這樣

public class CustomerEditVM 
{ 
    public int CustomerID { set;get;} 
    public string Name { set;get;} 
    public List<SelectListItem> Countries { set;get;} 
    public int SelectedCountry { set;get;} 
} 

而在你的操作方法

public ActionResult View(int id) 
{ 
    var customer=repositary.GetCustomer(id); 
    var customerEditVM=new CustomerEditVM { CustomerID=id,Name=customer.Name}; 
    customerEditVM.Countries=GetCountries(); 

    //Setting the selected item value here 
    customerEditVM.SelectedCountry=customer.CountryID 

    return View(customerEditVM); 
} 
public List<SelectListItem> GetCountries() 
{ 
    return new List<SelectListItem> { 
    new SelectListItem{ Value="1",Text="India"}, 
    new SelectListItem{ Value="2",Text="China"}, 
    new SelectListItem{ Value="3",Text="US"}, 
    } 
} 

你的觀點應該是強類型,以CustomerEditVM,我們將使用Html.DropDownListFor的輔助方法。

@model YourNamespaceHere.CustomerEditVM 
@using(Html.BeginForm()) 
{ 
Country : 
@Html.DropDownListFor(s=>s.SelectedCountry,Model.Countries,"Select") 
<input type="submit" value="Save" /> 
@Html.HiddenFor(s=>s.CustomerID) 
} 
相關問題