【问题标题】:Get the selected Items in ASP.Net MVC [duplicate]获取 ASP.Net MVC 中的选定项目 [重复]
【发布时间】:2016-09-12 15:21:54
【问题描述】:

我正在构建一个视图,用户可以在其中选择一些公司,在选择一些公司后,我可以单击按钮并执行某些操作。 问题是我无法在 ViewModel 中绑定选定的公司。

这是我所拥有的:

ViewModel:

public class ParametrosPesquisaViewModel
{
    public ParametrosPesquisaViewModel()
    {            
        Empresas = new List<EmpresaViewModel>();         
    }

    public IList<EmpresaViewModel> Empresas { get; set; }       
}

控制者:

获取

   public ActionResult Pesquisa()
    {
        ParametrosPesquisaViewModel parametros = new ParametrosPesquisaViewModel();
        var empresas = _empresaAppService.BuscarEmpresasValidas();            

        foreach (EmpresaViewModel empresa in empresas)
        {
            //Simulando a empresa logada                
            empresa.Selecionada = empresa.empresa == 1;                                
            parametros.Empresas.Add(empresa);
        }

        return View(parametros);
    }

发帖

public ActionResult Pesquisa(ParametrosPesquisaViewModel parametros)
{
    //Do something
}

HTML:

@model LMX.RecuperadorCupomFiscal.Application.ViewModels.ParametrosPesquisaViewModel

        @using (Html.BeginForm("Pesquisa", "RecuperadorCupomFiscal", FormMethod.Post))
        {
    ... skipping some html code
                    <table class="table table-striped table-hover">
                        <thead>
                            <tr>
                                <th>
                                    <label for="Empresa">Empresa(s):</label>
                                </th>
                                <th>
                                    <label for="cidade_emp">Cidade</label>
                                </th>
                                <th>
                                    <label for="estado_emp">Estado</label>
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach (var empresa in Model.Empresas)
                            {                            
                                <tr>
                                    <td>                                    
                                        @Html.CheckBoxFor(model => empresa.Selecionada)                                            
                                        @Html.DisplayFor(model => empresa.NomeEmpresaCodigo)                                    

                                    </td>
                                    <td>
                                        @Html.DisplayFor(model => empresa.cidade_emp)
                                    </td>
                                    <td>
                                        @Html.DisplayFor(model => empresa.estado_emp)
                                    </td>
                                </tr>                            
                            }
                        </tbody>
                    </table>


        }

在 Post ActionResult 中,parametros.Empresas 没有获得绑定。 这种情况下最好的方法是什么?

【问题讨论】:

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


【解决方案1】:

您生成复选框的方式,模型绑定器将无法绑定提交的数据。相反,请尝试以这种方式重写您的循环:

@for (var i = 0; i < Model.Empresas.Count; i++)
{
    <tr>
        <td>
            @Html.CheckBoxFor(model => Model.Empresas[i].Selecionada)
            @Html.DisplayFor(model => Model.Empresas[i].NomeEmpresaCodigo)
        </td>
        <td>
            @Html.DisplayFor(model => Model.Empresas[i].cidade_emp)
        </td>
        <td>
            @Html.DisplayFor(model => Model.Empresas[i].estado_emp)
        </td>
    </tr>
}

【讨论】:

  • 现在是微软“修复”这个问题的时候了。每个人都会在某些时候犯这个错误,这会让你认为实现一定是不正确的
  • @sachin,你明白了。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-03
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多