你能帮我在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; }
}
}
答案 0 :(得分:1)
下拉列表用于从可能选项列表中选择值。从您的模型中不清楚,但假设您想要一个带有下拉的视图来选择Projeto
和Funcionario
,然后创建一个视图模型来表示您想要显示和编辑的内容({{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 model和SelectList了解这些方法的各种重载
答案 1 :(得分:0)
结帐this link。我建议在下拉列表的视图模型中添加一个属性,并确保在将其传递给视图之前填充它。