c# - 从 Razor 页面发送 List<Object> 到 Update 的行?

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

我需要将一个列表发送回我的 Controller 并更新我存储库中的值。

但是在用值加载 View 、更新它并单击提交按钮后,我不知道如何获取具有更新值的列表并从存储库调用更新方法。

我正在使用 .Net 4.7.2。

家庭 Controller :

[HttpGet]
public ActionResult Nota(string Concurso)
{
    List<InscricoesModel> model = new List<InscricoesModel>();

    InscricoesRepository repository = new InscricoesRepository();

    model = repository.GetAprovadosPrimeiraFase(new Guid(Concurso));

    return View("Nota",model);
}

[HttpPost]
public void UdateNotas(List<InscricoesModel> model)
{
    InscricoesRepository repository = new InscricoesRepository();
    foreach(InscricoesModel item in model)
    {
        repository.Update(item);
    }
}

Nota.cshtml:

@model List<ConcursoBolsaSegundaFase.Model.InscricoesModel>

<h1>Classificados 2ª Fase</h1>
<hr />
<p>Exportado em @DateTime.Now</p>

<div style="margin-top:15px">

    @* TABELA RESULTADO *@
    <div id="notasAprovadosSegundaFase" style="margin-top:10px">

        @using (Html.BeginForm("UdateNotas", "Home", Model, FormMethod.Post))
        {

            <table class="table table-bordered" id="tblNotaAprovadosSegundaFase">
                <thead>
                    <tr>
                        <th>Inscrição</th>
                        <th>Nome</th>
                        <th>Nota Primeira Fase</th>
                        <th>Fez Carta</th>
                        <th>Nota Segunda Fase</th>
                    </tr>
                </thead>
                <tbody>
                    @if (Model != null)
                    {
                        foreach (var linha in Model)
                        {
                            <tr>
                                <td>@linha.Inscricao</td>
                                <td>@linha.Nome</td>
                                <td>@linha.NotaPrimeiraFase</td>
                                <td>
                                    <select>
                                        <option value="false">Não</option>
                                        <option value="true">Sim</option>
                                    </select>
                                </td>
                                <td><input type="text" value="@linha.NotaSegundaFase"></td>
                            </tr>
                        }
                    }
                </tbody>
            </table>

            <button type="submit" class="btn btn-success">Salvar</button>

        }
    </div>
</div>

我的 Controller 中的 UpdateNotas 方法从未接收到值,我不知道如何将列表从 View 发送到我的 Controller 。

最佳答案

在 MVC 中,输入的名称将绑定(bind)到 Controller 中的变量。在您的情况下,您的输入没有名称。我建议你看看html helpers .

这将正确绑定(bind)您的值。

for (int i = 0;i<Model.Count;i++)
{
    Html.TextBoxFor(model => Model[i].NotaSegundaFase)
}

在这种情况下,只有 NotaSegundaFase 会被发送回 Controller 。

关于c# - 从 Razor 页面发送 List<Object> 到 Update 的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57481719/

相关文章:

c# - 可见性取决于通用数据类型

c# - Moq - 如何验证属性值是否通过 setter 设置

asp.net-mvc - 将非静态值传递给 Action 过滤器

c# - .net 中的转换 : Native Utf-8 <-> Managed String

C#//SendKeys.SendWait 仅在进程窗口最小化时起作用

c# - 如何使用get_video_info Youtube

c# - 无法在同一解决方案中为 WCF 项目的客户端类添加服务引用

c# - 如何使用 .net webservices wse 或 wcf 创建安全的 SOAP 主体?

jquery - ASP.NET MVC 中的链接样式失败问题

jquery - MVC 默认模型绑定(bind)器 - 将多选下拉列表绑定(bind)到 IList<T>