2012-03-09 74 views
1

我有一個窗體視圖。在這個表格上我有一些文本框和2個下拉列表。asp.net mvc 3模型綁定下拉列表

這是我的ViewModel。

public class NewApplicationViewModel 
{ 
    public ApplicationData Application { get; set; } 

    //Selectlists 
    public SelectList Questionnaires { get; set; } 
    public SelectList Jobs { get; set; } 
} 

的ApplicatoinData類看起來像這樣

public class ApplicationData 
{ 
    [HiddenInput(DisplayValue = false)] 
    public Guid Id { get; set; } 
    [Required] 
    public ApplicantData Applicant { get; set; } 
    [Required] 
    public QuestionnaireData Questionnaire { get; set; } 
    [Required] 
    public JobData Job { get; set; } 
    public string Pdf { get; set; } 
} 

的 「調查問卷」 和德 「作業」 必須從dropdownlists選擇。 如何將下拉列表中的選定值綁定到我的「ApplicationData」中的對象? 爲了完整,這是我的控制器操作來處理表單提交。

[HttpPost] 
    public ActionResult NewApplication([Bind(Prefix="Application")]ApplicationData model) 
    { 
     var application = Mapper.Map<ApplicationData, Application>(model); 
     _applicationRepository.Add(application); 
     _session.Commit(); 
     return View(); 
    } 

感謝

+0

您可以在創建NewApplicationViewModel實例時指定SelectList的選定值。 – 2012-03-09 08:51:43

回答

3
@Html.DropdownListFor(
    x => x.Application.Questionnaire.ID, 
    Model.Questionnaires 
) 

@Html.DropdownListFor(
    x => x.Application.Job.ID, 
    Model.Jobs 
) 
1

請參考以下鏈接綁定下拉列表。這對你很有幫助。

ASP.NET MVC - drop down list selection - partial views and model binding

Can't get selected drop down value to bind to view model property

在這裏,如果你不想爲項目列表創建模型財產,但你也可以將其存儲在ViewData的或ViewBag。請在下面找到示例代碼。

<%= Html.DropDownList("Category.CategoryId", new SelectList((
IEnumerable<ProductManagement.Models.Category>)ViewData["CategoryList"], 
"CategoryId", "CategoryName"))%>