我是asp.net的新手,这是我的第一个应用程序。 我正在开发一个管理保险请求的应用程序。模型Request包含文件上载。 addDemand(添加请求)需要一个成员(adherent)登录。每次我尝试运行addDemande时都会收到错误:
传递到字典中的模型项的类型是' System.Collections.Generic.List`1 [Mutuelle.Domain.Entities.Demande]',但此字典需要类型为&的模型项#39; Mutuelle.Domain.Entities.Demande'
这是控制器:
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");
}
}
以下是视图:
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>