将实体列表从视图传递到控制器
Pass list of Entities from View to controller
我想做的很简单。我有一个视图接收一个模型,该模型包含 2 个实体的 2 个列表。当我调用它时,我想将其中一个列表传递给控制器。这听起来很简单,我已经尝试过各种提出的解决方案,但无法让它发挥作用。我也是 MVC 的新手。
模特
public class SorteioEspecial
{
RepositoryService service = new RepositoryService();
public SorteioEspecial()
{
funcionario = new List<Funcionario>();
ponderacaoFuncionario = new List<PonderacaoFuncionario>();
}
public IEnumerable<Funcionario> funcionario { get; set; }
public IEnumerable<PonderacaoFuncionario> ponderacaoFuncionario { get; set; }
public IEnumerable<Funcionario> GetFuncionarios()
{
funcionario = service.GetFuncionarios();
return funcionario;
}
public IEnumerable<PonderacaoFuncionario> GetPonderacaoFuncionario()
{
ponderacaoFuncionario = service.GetPonderacaoFuncionario();
return ponderacaoFuncionario;
}
}
景色
@model Alpd.Models.SorteioEspecial
@using (@Html.BeginForm("EditarPonderacoesEspecialSecond", "Sorteios",Model.ponderacaoFuncionario, FormMethod.Post))
{
<div class="filterbox">
<table class="table">
<tr>
<th>
<b>ID</b>
</th>
<th>
<b>ID Funcionário</b>
</th>
<th>
<b>Nome Funcionário</b>
</th>
<th>
<b>Ponderação</b>
</th>
<th>
<b>Incluir Sorteio</b>
</th>
<th></th>
</tr>
@foreach (var item in Model.ponderacaoFuncionario)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.Id)</td>
<td>@Html.DisplayFor(modelItem => item.Funcionario)</td>
<td>@Html.DisplayFor(modelItem => item.Nome_Funcionario)</td>
<td>@Html.DisplayFor(modelItem => item.Ponderacao)</td>
<td>@Html.DisplayFor(modelItem => item.Incluir_sorteio)</td>
</tr>
}
</table>
</div>
<!--
<div class="col-md-10">
<a href='Url.Action("EditarPonderacoesEspecialSecond", "Sorteios", Model.ponderacaoFuncionario)'>
<input type="submit" value="Editar Ponderações" class="btn-default" />
</a>
</div>
-->
@Html.HiddenFor(model => model.ponderacaoFuncionario)
@Html.EditorFor(model => model.ponderacaoFuncionario)
<input type="submit" value="Editar Ponderações" class="btn-default" />
}
控制器方法
[HttpPost]
public ActionResult EditarPonderacoesEspecialSecond (SorteioEspecial pf)
{
return View(pf);
}
我只想调用方法,传递实体列表 ponderacaoFuncionario 。不想在视图上做任何事情(只显示 table)。另外,如果我没有以正确的方式做到这一点,你能给出如何做的建议吗?
由于视图使用 SorteioEspecial
,您将创建该 class 的实例以放入列表并用作模型:
[HttpPost]
public ActionResult EditarPonderacoesEspecialSecond (List<PonderacaoFuncionario> ponderacaoFuncionario)
{
SorteioEspecial model = new SorteioEspecial();
model.ponderacaoFuncionario = ponderacaoFuncionario;
return View(model);
}
我想做的很简单。我有一个视图接收一个模型,该模型包含 2 个实体的 2 个列表。当我调用它时,我想将其中一个列表传递给控制器。这听起来很简单,我已经尝试过各种提出的解决方案,但无法让它发挥作用。我也是 MVC 的新手。
模特
public class SorteioEspecial
{
RepositoryService service = new RepositoryService();
public SorteioEspecial()
{
funcionario = new List<Funcionario>();
ponderacaoFuncionario = new List<PonderacaoFuncionario>();
}
public IEnumerable<Funcionario> funcionario { get; set; }
public IEnumerable<PonderacaoFuncionario> ponderacaoFuncionario { get; set; }
public IEnumerable<Funcionario> GetFuncionarios()
{
funcionario = service.GetFuncionarios();
return funcionario;
}
public IEnumerable<PonderacaoFuncionario> GetPonderacaoFuncionario()
{
ponderacaoFuncionario = service.GetPonderacaoFuncionario();
return ponderacaoFuncionario;
}
}
景色
@model Alpd.Models.SorteioEspecial
@using (@Html.BeginForm("EditarPonderacoesEspecialSecond", "Sorteios",Model.ponderacaoFuncionario, FormMethod.Post))
{
<div class="filterbox">
<table class="table">
<tr>
<th>
<b>ID</b>
</th>
<th>
<b>ID Funcionário</b>
</th>
<th>
<b>Nome Funcionário</b>
</th>
<th>
<b>Ponderação</b>
</th>
<th>
<b>Incluir Sorteio</b>
</th>
<th></th>
</tr>
@foreach (var item in Model.ponderacaoFuncionario)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.Id)</td>
<td>@Html.DisplayFor(modelItem => item.Funcionario)</td>
<td>@Html.DisplayFor(modelItem => item.Nome_Funcionario)</td>
<td>@Html.DisplayFor(modelItem => item.Ponderacao)</td>
<td>@Html.DisplayFor(modelItem => item.Incluir_sorteio)</td>
</tr>
}
</table>
</div>
<!--
<div class="col-md-10">
<a href='Url.Action("EditarPonderacoesEspecialSecond", "Sorteios", Model.ponderacaoFuncionario)'>
<input type="submit" value="Editar Ponderações" class="btn-default" />
</a>
</div>
-->
@Html.HiddenFor(model => model.ponderacaoFuncionario)
@Html.EditorFor(model => model.ponderacaoFuncionario)
<input type="submit" value="Editar Ponderações" class="btn-default" />
}
控制器方法
[HttpPost]
public ActionResult EditarPonderacoesEspecialSecond (SorteioEspecial pf)
{
return View(pf);
}
我只想调用方法,传递实体列表 ponderacaoFuncionario 。不想在视图上做任何事情(只显示 table)。另外,如果我没有以正确的方式做到这一点,你能给出如何做的建议吗?
由于视图使用 SorteioEspecial
,您将创建该 class 的实例以放入列表并用作模型:
[HttpPost]
public ActionResult EditarPonderacoesEspecialSecond (List<PonderacaoFuncionario> ponderacaoFuncionario)
{
SorteioEspecial model = new SorteioEspecial();
model.ponderacaoFuncionario = ponderacaoFuncionario;
return View(model);
}