【问题标题】:asp.net mvc 3 model binding dropdownasp.net mvc 3 模型绑定下拉菜单
【发布时间】:2012-03-09 08:36:06
【问题描述】:

我有一个带有表单的视图。在那个表单上,我有一些文本框和 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();
    }

谢谢

【问题讨论】:

  • 创建NewApplicationViewModel实例时可以指定SelectList的选择值。

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


【解决方案1】:
@Html.DropdownListFor(
    x => x.Application.Questionnaire.ID,
    Model.Questionnaires
)

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

【讨论】:

    【解决方案2】:

    请参阅以下链接以获取绑定下拉列表。对你很有帮助。

    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"))%>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2011-08-07
      • 1970-01-01
      • 2014-09-20
      • 2018-04-25
      • 1970-01-01
      相关资源
      最近更新 更多