【问题标题】:POST model from view to actionresult从视图到操作结果的 POST 模型
【发布时间】:2019-08-05 07:18:40
【问题描述】:

我有一个使用 ASP.NET MVC 制作的 Web 应用程序。 我有一个视图,其中显示了我的对象的 IEnumerable。

这是视图代码

@model IEnumerable<Pimm.RapportiMVC.Models.ViewModel.FoglioGiornalieroDettaglioViewModel>

@foreach (var item in Model)
{
    using (Html.BeginForm("Convalida", "FoglioGiornaliero", FormMethod.Post))
    { ........           
     input type="submit" value="Convalida" ....
     ..... 
     }
}

From调用这个ActionResult的提交

    [Authorize]
    [HttpPost]
    public ActionResult Convalida([Bind(Include = "Id_Dettaglio,Id_Foglio,CommessaId,Aiutanti,Automezzo,Convalidato,DataConvalida")] FoglioGiornalieroDettaglioViewModel model)
    {
        var dip = SessionHelper.Dipendente;
        FoglioGiornalieroManager fm = new FoglioGiornalieroManager();
        int save =fm.Convalida(dip.matric, model);

        if(save>0)
        {
            ViewBag.message = "Convalida effettuata correttamente";
        }
        else {
            ViewBag.message = "C'è stato un problema con la convalida";
        }

        return RedirectToAction("Edit", "FoglioGiornaliero", new {id_foglio =model.Id_Foglio});
    }

提交调用 ActionResult 但模型被初始化但我的对象的属性没有被重视。

我可以解决....我只需要传递一个 Ienumerable...

非常感谢您的帮助

【问题讨论】:

  • 您确定 Include 中提到的属性的名称是正确的吗?如果不使用 include 试试呢?
  • @SalahAkbari 属性名称是正确的,我也尝试过不包含,但它不起作用
  • @Izzy 即使实施您的解决方案也不起作用....实际上问题是我在视图中拥有的模型是我的对象的 IEnumerable 而执行提交的操作只是在选定的对象上。这就是问题所在。我不知道如何将唯一有问题的对象传递给我的 ActionResult .... 这就是我将 Form 放在 Foreach 中的原因

标签: c# asp.net-mvc


【解决方案1】:

我解决了。我的错误在于传递给 ActionResult 的变量名称

视图传递给控制器​​对象项,但在 ActionResul 中我调用了参数模型

    [Authorize]
    [HttpPost]
    public ActionResult Convalida([Bind(Include = "Id_Dettaglio,Id_Foglio,CommessaId,Aiutanti,Automezzo,Convalidato,DataConvalida")] FoglioGiornalieroDettaglioViewModel item)
    {
        var dip = SessionHelper.Dipendente;
        FoglioGiornalieroManager fm = new FoglioGiornalieroManager();
        int save =fm.Convalida(dip.matric, item);

        if(save>0)
        {
            ViewBag.message = "Convalida effettuata correttamente";
        }
        else {
            ViewBag.message = "C'è stato un problema con la convalida";
        }

        return RedirectToAction("Edit", "FoglioGiornaliero", new {id_foglio = item.Id_Foglio});
    }

非常感谢

【讨论】:

    【解决方案2】:

    这是 HTML 呈现方式的一部分

    <table class="table">
    <tr>
        <th>
            Id_Foglio
        </th>
        <th>
            Id_Dettaglio
        </th>
        <th>
            Operaio
        </th>
        <th>
            AutorizzazioneStraordinario
        </th>
        <th>
            Scheda
        </th>
        <th>
            Automezzo
        </th>
    
        <th>
            Convalidato
        </th>
        <th>
            DateConvalida
        </th>
        <th>
            UtenteConvalida
        </th>
        <th></th>
    </tr>
    
    <form action="/FoglioGiornaliero/Convalida" method="post"><input name="__RequestVerificationToken" type="hidden" value="78PYgitrg4xus6jBEuKK4YWgxgEccyqq8UZiSEITfoq9QCgGv93TXmYzJBpivDjdpeYBbmbzy5roT8otvHK_DdSBpryaD86wvwy8w2SN1Ms1" />    <tr>
            <td>
                <input class="text-box single-line" data-val="true" data-val-number="Il campo Id_Foglio deve essere un numero." data-val-required="Il campo Id_Foglio è obbligatorio." id="item_Id_Foglio" name="item.Id_Foglio" type="number" value="2682" />
            </td>
            <td>
                <input class="text-box single-line" data-val="true" data-val-number="Il campo Id_Dettaglio deve essere un numero." data-val-required="Il campo Id_Dettaglio è obbligatorio." id="item_Id_Dettaglio" name="item.Id_Dettaglio" type="number" value="0" />
            </td>
            <td>
                <input class="text-box single-line" id="item_Operaio_matric" name="item.Operaio.matric" type="text" value="CNGS" />
            </td>
            <td>
                <input data-val="true" data-val-required="Il campo AutorizzazioneStraordinario è obbligatorio." id="item_AutorizzazioneStraordinario" name="item.AutorizzazioneStraordinario" type="checkbox" value="true" /><input name="item.AutorizzazioneStraordinario" type="hidden" value="false" />
            </td>
            <td>
                <input class="text-box single-line" id="item_Scheda" name="item.Scheda" type="text" value="SA197130" />
            </td>
            <td>
                <input class="text-box single-line" id="item_Automezzo" name="item.Automezzo" type="text" value="00" />
            </td>
            <td>
                <input class="text-box single-line" id="item_Convalidato" name="item.Convalidato" type="text" value="" />
            </td>
            <td>
                <input class="text-box single-line" data-val="true" data-val-date="Il campo DateConvalida deve essere una data." data-val-required="Il campo DateConvalida è obbligatorio." id="item_DateConvalida" name="item.DateConvalida" type="datetime" value="01/01/1900 00:00:00" />
        </td>
        <td>
            <input class="text-box single-line" id="item_UtenteConvalida" name="item.UtenteConvalida" type="text" value="" />
        </td>
        <td>
            <input type="submit" value="Convalida" />
        </td>
    </tr>
    

    这是提交后的数据

    the submit get this

    【讨论】:

      猜你喜欢
      • 2019-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多