如何在MVC4中创建dropDown列表

时间:2014-11-15 20:54:10

标签: asp.net-mvc asp.net-mvc-4

你能帮我在asp.net mvc 4中创建一个下拉列表吗?

我有一个ProjetoFuncionario类,它是" Projeto"的关联类。和" Funcionario"

我应该为下拉列表创建一个类?

我在创建下拉列表时非常困难。 有一些很好的教程或者你们可以给我的小费吗?

谢谢!

CLASS PROJETOFUNCIONARIO

namespace Exercicio1.Models
{
    public class ProjetoFuncionario
    {
        public Projeto IdProjeto { get; set; }
        public Funcionario IdFuncionario { get; set; }



    }


}

2 个答案:

答案 0 :(得分:1)

下拉列表用于从可能选项列表中选择值。从您的模型中不清楚,但假设您想要一个带有下拉的视图来选择ProjetoFuncionario,然后创建一个视图模型来表示您想要显示和编辑的内容({{3 }})。请注意,此示例基于上一个问题中的模型定义。

public class ProjetoFuncionarioVM
{
  [Display(Name="Projeto")]
  public long SelectedProjeto { get; set; }
  [Display(Name="Funcionario")]
  public long SelectedFuncionario { get; set; }
  public SelectList ProjetoList { get; set; }
  public SelectList FuncionarioList { get; set; }
}

控制器

public ActionResult Edit()
{
  ProjetoFuncionarioVM model = new ProjetoFuncionarioVM();
  model.SelectedProjeto = // if you want to preselect one of the options
  ConfigureEditModel(model);
  return View(model);    
}

public ActionResult Edit(ProjetoFuncionarioVM model)
{
  if (ModelState.IsValid)
  {
    ConfigureEditModel(model); // reassign the select lists
    return View(model); // return the view to correct errors
  }
  // access properties of the view model, save and redirect
}

private void ConfigureEditModel(ProjetoFuncionarioVM model)
{
  List<Projeto> projeto = // get the collection of projeto objects from the database
  List<Funcionario> funcionario = // ditto for funcionario objects
  // Assign select lists
  model.ProjetoList = new SelectList(projeto, "id_Projeto", "nome_Projeto");
  model.FuncionarioList = new SelectList(funcionario, "id_funcionario", "nom_funcionario");
}

查看

@model ProjetoFuncionarioVM

@using (Html.BeginForm())
{
  @Html.LabelFor(m => m.SelectedProjeto)
  @Html.DropDownListForFor(m => m.SelectedProjeto, Model.ProjetoList, "Please select")
  @Html.ValidationMessageFor(m => m.SelectedProjeto)
  @Html.LabelFor(m => m.SelectedFuncionario)
  @Html.DropDownListForFor(m => m.SelectedFuncionario, Model.FuncionarioList, "Please select")
  @Html.ValidationMessageFor(m => m.SelectedFuncionario)
  <input type="submit" value="Save" />
}

还请参阅What is a view modelSelectList了解这些方法的各种重载

答案 1 :(得分:0)

结帐this link。我建议在下拉列表的视图模型中添加一个属性,并确保在将其传递给视图之前填充它。

相关问题