Utilisation de ASP.NET MVC avec Entity FrameworkViewData qui n'est pas NULL est à l'origine de l'erreur nullpointer lors du POST
je vidéotex pour afficher des informations qui ne fait pas partie du modèle de la page. Le formulaire contient le modèle fortement typé tandis que les informations client sont affichées en haut à l'extérieur du formulaire. Je peux voir les informations affichées avant de soumettre le formulaire, donc je sais que ce n'est pas nul et même si c'était pour cela que j'aurais une erreur lors de l'envoi du formulaire puisqu'il ne fait pas partie du formulaire?
code provoquant l'erreur
@model Sondage_Epicier.Models.Sondage_Vendeur
@{
Sondage_Epicier.Models.CLIENT cust = (Sondage_Epicier.Models.CLIENT)
ViewData["Customer"];
}
<div id="sondage">
<div class="subForm" style="margin-bottom: -20px;">
<p class="info">@Resources.numClient2 @cust.NO_CLIENT</p><br />
<p class="info">@Resources.nom @cust.NOM</p><br />
<p class="info">@Resources.address @cust.ADR_1 , @cust.VILLE</p>
</div>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true, "", new { @class = "" })
@Html.HiddenFor(model => model.SondageID)
@Html.HiddenFor(model => model.Date_Envoye)
@Html.AntiForgeryToken()
Je suis désolé pour la pile SQL en français, être clair que le @cust est à l'origine du problème ne les @Resources
Utilisez un [ViewModel] (http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) au lieu de ViewData, le problème a été résolu. Beaucoup pensent que ViewData est un anti-pattern et ne devrait probablement jamais être utilisé de toute façon – Liam
Si votre formulaire ne réussit pas la validation, la page se rechargera. Si vous ne réinitialisez pas les éléments ViewData, ils seront NULL car, comme vous l'avez dit, ils ne font pas partie du formulaire. De plus, si vous ne suivez pas PRG (post, redirect, get) et que vous appelez simplement return View ("myviewname") à partir de votre méthode POST, à nouveau, ViewData sera NULL sauf si vous redéfinissez les valeurs. – Tommy
vous devez recharger ViewData. Voir ceci http://stackoverflow.com/a/43083773/40521 – Shyju