asp.net mvc 3模型绑定下拉列表

时间:2012-03-09 08:36:07

标签: c# asp.net .net asp.net-mvc-3

我有一个表格的视图。在那个表格上,我有一些文本框和2个下拉列表。

这是我的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; }
}

必须从下拉列表中选择“调查问卷”和“工作”。 如何将下拉列表中的选定值绑定到“ApplicationData”中的对象? 为了完成,这是我的控制器动作来处理表单提交。

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

由于

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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"))%>