2012-03-09 75 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"))%>