J'ai une vue principale qui contient un tableau reçu de l'action correspondante et il contient également une référence de vue partielle ci-dessousComment passer un tableau de la vue principale vue partielle en asp.net mvc 5
Créer .cshtml:
@model HrAndPayrollSystem.Models.EmployeeMasterA
@using (Html.BeginForm())
{
ViewData["fs_lbls"] = ViewBag.FS_lbls as string[];
@Html.Partial("~/Views/EmployeeMasterA/FinalSettlementTAB.cshtml", Model)
}
et la vue partielle mentionnée ci-dessus est défini ci-dessous
FinalSettlementTAB.cshtml:
@model HrAndPayrollSystem.Models.EmployeeMasterA
@Html.DropDownList("DeptId", null, "Department")
/* Print "ViewData["fs_lbls"]" array defined in the Main View `Create.cshtml` here */
J'ai un tableau défini dans le Create.cshtml
, maintenant, je veux passer dans la vue partielle HR_EmployeeFinalSettlementTAB.cshtml
et l'imprimer, Quelle est la bonne façon de cela?
Ce que j'ai essayé:
j'ai changé la ligne en @Html.Partial()
ci-dessous:
@Html.Partial("~/Views/EmployeeMasterA/FinalSettlementTAB.cshtml", null, new ViewDataDictionary { { "fs_lbls", ViewData["fs_lbls"] } })
et modifié le fichier FinalSettlementTAB.cshtml comme ci-dessous:
@model HrAndPayrollSystem.Models.EmployeeMasterA
@Html.DropDownList("DeptId", null, "Department")
@foreach (var i in ViewData["fs_lbls"] as string[])
{
@i
}
Mais il jette un exception InvalidOperationException
à la ligne @Html.DropDownList("DeptId", null, "Department")
en disant:
Il n'existe aucun élément ViewData de type 'IEnumerable' avec la clé 'DeptId'.
Il jette l'exception ci-dessus chaque fois que je tente de transmettre les données du tableau à la vue partielle en utilisant ViewDataDictionary
, sinon, il fonctionne très bien, quand je ne suis pas. Comment puis-je me débarrasser de l'exception ci-dessus et passer correctement les données du tableau de la vue principale à la vue partielle?