简体   繁体   中英

POST model from view to actionresult

I have a web application made with ASP.NET MVC. I have a view where an IEnumerable of my object is displayed.

this is code of view

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

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

The submit of From call this 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});
    }

The submit call ActionResult but model is inizilized but the properties of my object are not valued.

Ho i can resolv.... I need to pass only one of Ienumerable...

thank you so much for the help

I solved. My error was in the name of the variable passed to the ActionResult

The View pass to controller object item but in ActionResul i'va calld parameter model

    [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});
    }

Thank you so much

This is a part of how HTML is presented

<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>

This are data after Submit

the submit get this

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM