[英]Simple DropDownList in MVC3
在我的第一個MVC3應用程序上工作。 我有一個簡單的視圖,有2個對象(對象A,對象B)。 對象B是可選的。 我已經創建了一個包含兩個對象的模型,並且Controller可以很好地將數據來回傳遞給View。
我正在嘗試為用戶輸入一個簡單的DropDownList來決定是否要為對象B輸入數據。下拉列表很簡單 - 兩個值為“是”和“否”。
例如:繼續使用“B”部分?
[是]
[沒有]
在視圖上,用戶填寫對象A的所有表單項。然后,他們可以選擇填寫對象B的項目。我希望他們選擇“是”如果他們想這樣做(我是使用Jquery來顯示當時的更多頁面)。
我的問題:我如何制作一個簡單的Dropdownlist(甚至是一個基本的HTML輸入類型=“select”...),我可以在提交表單后在Controller中訪問它?
在我的控制器中,我想執行以下操作:
*做對象A的東西
*檢查他們是否選擇了是
*做對象B的東西
像Yes / No下拉這樣簡單的東西需要進入模型嗎? 它沒有輸入任何內容 - 它只是用戶在View中做出的決定。 我知道必須有一個簡單的方法(ViewBag?)但我是新的,顯然已經丟失了。
TL; DR - 如何在我可以在Controller中訪問的視圖上創建簡單的DropdownList?
從HTTPPOST中為您的對象獲取視圖中的值的經驗法則是將輸入控件id和name屬性命名為與Models屬性名稱相同。 一個簡單的方法是使用Html助手。
public class Model
{
public Model()
{
List<SelectListItem> options = new List<SelectListItem>();
options.Add(new SelectListItem { Value = true.ToString(), Text = "yes" });
options.Add(new SelectListItem { Value = false.ToString(), Text = "no" });
ContinueOptions = options;
}
public bool Continue { get; set; }
public IEnumerable<SelectListItem> ContinueOptions { get; set; }
}
在您的視圖中:
@Html.DropDownListFor(m => Model.Continue, Model.ContinueOptions)
在您的控制器中:
[HttpPost]
public ActionResult Edit(Model model)
{
bool continueOn = model.Continue;
}
是的,您的下拉菜單應該是模型的一部分,否則控制器將無法得到用戶的答復,以檢查他們是否選擇了是 。
public SomeViewModel
{
public ObjectA A { get; set; }
public ObjectB B { get; set; }
public bool? IsBSelected { get; set; }
}
我經常使用bool?
只是因為我想知道用戶是選擇了還是另一個,但是使用bool
也沒關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.