2011-06-07 96 views
7

我是MVC3的新手。我想創建一個選擇列表/下拉菜單,這將允許我選擇2-3件事情。我只希望能夠從列表中選擇一個。有沒有一種簡單的方法可以幫助你做到這一點。我可以用MVC3幫手創建一個選擇列表

Mary Jean

這是我的想法。

The helper will select from choices: 

1 answer 
2 answers 
3 answers 

和結果存儲在task_type可變

回答

14

你可以使用DropDownListFor幫手。

public class AnswersViewModel 
{ 
    public string SelectedAnswer { get; set; } 

    public IEnumerable<SelectListItem> Answers 
    { 
     get 
     { 
      return new[] 
      { 
       new SelectListItem { Value = "1", Text = "1 answer" }, 
       new SelectListItem { Value = "2", Text = "2 answers" }, 
       new SelectListItem { Value = "3", Text = "3 answers" }, 
      }; 
     } 
    } 
} 

然後控制器:我將通過定義視圖模型開始

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var model = new AnswersViewModel(); 
     return View(model); 
    } 

    [HttpPost] 
    public ActionResult Index(AnswersViewModel model) 
    { 
     return View(model); 
    } 
} 

最後一個強類型的視圖:

@model AnswersViewModel 
@using (Html.BeginForm()) 
{ 
    @Html.DropDownListFor(
     x => x.SelectedAnswer, 
     new SelectList(Model.Answers, "Value", "Text") 
    ) 
    <input type="submit" value="OK" /> 
} 

現在,當用戶提交表單的指數POST動作將被調用,視圖模型的SelectedAnswer屬性將自動從下拉列表中選擇用戶。

+0

哇達林,你的回答非常好。我可以從你身上學到很多東西。非常感謝 !! – MaryJean 2011-06-07 07:21:19

+0

有一個問題。它說無法找到SelectListItem。我需要定義那個類嗎? – MaryJean 2011-06-07 07:25:41

+0

@MaryJean,不,你需要導入定義這個類的名字空間:'using System.Web.Mvc'。 – 2011-06-07 07:29:07

相關問題