问题描述
我现在要过滤几个小时的视图。这就是我所拥有的: 我的看法:
@using (Html.BeginForm("Index","RH_CentroCusto",FormMethod.Get))
{
@Html.DropDownListFor(f => f.DepartmentoSelecionado,Model.Departamentos,"Select")
}
在我的模型课中:
public IEnumerable<SelectListItem> Departamentos { get; set; }
public string DepartmentoSelecionado { get; set; }
我的控制器:
//i want to receive the value in departamentoSelecionado !!
public IActionResult Index( string searchString,string departamentoSelecionado = "",int page = 1)
List<SelectListItem> selectList = new List<SelectListItem>();
foreach (var x in _context.RH_Departamento.ToList())
{
selectList.Add(new SelectListItem() { Text = x.Departamento,Value = x.Departamento });
}
//and then i add to the viewmodel that i create the list
viewmodelCentroCusto vmcc = new viewmodelCentroCusto()
{
Departamentos = selectList
}
当我尝试选择一个并单击Enter时,它被认为是通过的,因为在我的浏览器中我检查了它并且正在传递查询参数:
https://snipboard.io/HvnmqO.jpg
但是在我的控制器中,我的departamentoSelecionado为空,下拉列表也再次获得“选择”,而不是保留我之前选择的内容!任何帮助表示赞赏!
解决方法
将departamentoSelecionado
更改为departmentoSelecionado
。您在departmentoSelecionado
中拼写了一个额外的字母 a 。
//public IActionResult Index( string searchString,string departamentoSelecionado = "",int page = 1)
public IActionResult Index( string searchString,string departmentoSelecionado = "",int page = 1)
action方法中的参数应该与f => f.DepartmentoSelecionado
相同。
更新16/09/2020
控制器代码
public class RH_CentroCustoController : Controller
{
//i want to receive the value in departamentoSelecionado !!
public IActionResult Index(string searchString,string departmentoSelecionado ="",int page = 1)
{
List<SelectListItem> selectList = new List<SelectListItem>();
IList<RH_Departamento> RH_Departamento = new List<RH_Departamento>(){
new RH_Departamento(){ Departamento="dep1" },new RH_Departamento(){ Departamento="dep2" },new RH_Departamento(){ Departamento="dep3" },};//just for test
//foreach (var x in _context.RH_Departamento.ToList())
foreach (var x in RH_Departamento.ToList())
{
selectList.Add(new SelectListItem() { Text = x.Departamento,Value = x.Departamento });
}
//and then i add to the viewModel that i create the list
ViewModelCentroCusto vmcc = new ViewModelCentroCusto()
{
Departamentos = selectList
};
return View(vmcc);
}
}
查看代码
@model xxx.Models.ViewModelCentroCusto
@{
Layout = null;
}
@using (Html.BeginForm("Index","RH_CentroCusto",FormMethod.Get))
{
@Html.DropDownListFor(f => f.DepartmentoSelecionado,new SelectList(Model.Departamentos,"Value","Text"),"Select");
<input type="submit" value="Save" />
}
型号代码
public class ViewModelCentroCusto
{
public IEnumerable<SelectListItem> Departamentos { get; set; }
public string DepartmentoSelecionado { get; set; }
}
public class RH_Departamento
{
public string Departamento { get; set; }
}