The model item passed into the dictionary is of ty

2020-03-31 07:05发布

I'm new to asp.net and this is my first application. I'm developing an application that manages insurance requests. The model Request contains a file upload. the addDemand (adds a request)requires a member(adherent) to be logged in. Every time I try to run the addDemande I get the error:

The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[Mutuelle.Domain.Entities.Demande]', but this dictionary requires a model item of type 'Mutuelle.Domain.Entities.Demande'.

Here's the controller:

 public ActionResult AddDemande()
        {
            Demande demande = new Demande();
            return View(demande);

        }


[HttpPost]
public ActionResult AddDemande([Bind(Exclude = "fichier")]Demande demande, HttpPostedFileBase fichier)
{
    try
    {
        if (!ModelState.IsValid)
        {
            return View();
        }
        else
        {
            BinaryReader fichierReader = new BinaryReader(fichier.InputStream);
            byte[] fichiers = fichierReader.ReadBytes(fichier.ContentLength);

            demande.fichier = fichiers;

            AdherentDService adherentService = new AdherentDService();
            Adherent adherent = (Adherent)Session["logedAd"];
            demande.nomBeneficiaire = adherent.nom;
            demande.eMailBeneficiaire = adherent.eMail;
            demande.beneficiare = adherent;
            adherent.listDemandes.Add(demande);
            adherentService.Updateadherent(adherent);
            demande.beneficiare = adherent;
            adherentService.CreateaDemande(demande);

            Session.Remove("logedAd");
            Session.Add("logedAd", adherent);
            return RedirectToAction("Demandes");

        }
    }

    catch
    {
        return RedirectToAction("Index", "Home");
    }

}

And here's the View:

 model Mutuelle.Domain.Entities.Demande

@{
    ViewBag.Title = "AddDemande";
}

<h2>AddDemande</h2>

@using (Html.BeginForm("AddDemande", "Adherent", FormMethod.Post, new { @enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Demande</h4>
        <hr />
        @Html.ValidationSummary(true)


        <div class="form-group">
            @Html.LabelFor(model => model.Nomrubrique, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Nomrubrique)
                @Html.ValidationMessageFor(model => model.Nomrubrique)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.fichier, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                <input style="margin-left:0px;cursor:pointer;" type="file" name="fichier" id="fichier" />
            </div>
        </div>

0条回答
登录 后发表回答