簡體   English   中英

如何從靜態下拉列表中獲取數據到mvc4中的模型

[英]how to get data from static dropdown list to model in mvc4

我的視圖中有一個靜態下拉列表

<select>
 <option value="volvo">Volvo</option>
 <option value="saab">Saab</option>
 <option value="mercedes">Mercedes</option>
 <option value="audi">Audi</option>
</select>

我想將這個下拉列表與我的模型綁定,這樣當我提交下拉列表的選定值時,我從控制器中的模型中獲取該值。

另外,我想根據模型中的數據選擇下拉選項。

我剛剛為靜態下拉列表創建了列表項並將其傳遞到下拉列表,我將其與我的viewmodel綁定。

 @{
   var listItems = new List<ListItem> {new ListItem {Text = "Single", Value = "Single"}, new ListItem {Text = "Married", Value = "Married"}, new ListItem {Text = "Divorse", Value = "Divorse"}};
   }
 @Html.DropDownListFor(model => model.EmployeeDetail.MaritalStatus, new SelectList(listItems),"-- Select Status --")

它對我來說非常有效,因為它顯示了來自模型的價值,並且在我提交數據時還存儲了模型中下拉列表的值。

不是在HTML中構建下拉列表,而是在服務/控制器中構建它並將其添加到模型中:

視圖模型:

public class YourViewModel
{
    public string SelectedCarManufacturer { get; set; }

    public Dictionary<string, string> CarManufaturers { get; set; }

    // your other model properties
}

控制器獲取動作方法

[HttpGet]
public ActionResult SomeAction()
{
    var model = new YourViewModel
    {
        SelectedCarManufacturer = null, // you could get this value from your repository if you need an initial value
        CarManufaturers = new Dictionary<string, string>
        {
            { "volvo", "Volvo" },
            { "saab", "Saab" },
            { "audi", "Audi" },
            /// etc.
        }
    };

    return this.View(model);
}

在您的視圖中,將硬編碼下拉列表替換為:

@Html.DropDownListFor(m => m.SelectedCarManufacturer , new SelectList(Model.CarManufaturers , "Key", "Value"), "Select a manufacturer...")

控制器后期行動方法

[HttpPost]
public ActionResult SomeSaveAction(YourViewModel model)
{
    // do something with the model...
    // model.SelectedCarManufacturer 
}

要么

[HttpPost]
public ActionResult SomeSaveAction()
{
    var model = someService.BuildYourViewModel()
    this.TryUpdateModel(model);

    // do something with the model...
    someService.SaveYourViewModel(model);
}

我希望這有幫助...

在控制器中

List<SelectListItem> items = new List<SelectListItem>();

     items.Add(new SelectListItem { Text = "Volvo", Value = "volvo"});

     items.Add(new SelectListItem { Text = "Saab", Value = "saab" });

     items.Add(new SelectListItem { Text = "Mercedes", Value = "mercedes" });

     items.Add(new SelectListItem { Text = "Audi", Value = "audi" });

在視圖上

Html.DropDownListFor(Model.items)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM