中にnullポインタエラーの原因となっている私は、ページのモデルの一部ではない情報を表示するためのViewDataを使用。フォームには厳密に型指定されたモデルが含まれ、顧客情報はフォームの最上部に表示されます。フォームを送信する前に情報が表示されるので、nullではないことがわかります。フォームの一部ではないため、フォームを送信するときにエラーが発生するのはなぜですか?のViewDataは、Entity Frameworkの</p> <p>とASP.NET MVCを使用してPOST
コードエラーに
@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()
を引き起こし、私は@custはあなたが取得している問題ではありません@Resources
ViewDataの代わりに[ViewModel](http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc)を使用して、問題を解決しました。多くはViewDataをがアンチパターンで、おそらくあなたのフォームが検証に合格しない場合は、ページをリロードします今までとにかく – Liam
を使用すべきではないと思います。 ViewData要素をリセットしない場合は、あなたの言ったようにフォームの一部ではないため、NULLになります。あなたはPRGを次(ポスト、リダイレクト、取得)し、単にあなたのPOSTメソッドからの戻りビュー(「myviewname」)を呼び出していない場合は、値を再設定しない限り、また、再び、のViewDataはNULLになります。 – Tommy
ViewDataを再読み込みする必要があります。成功した操作(DB内のデータの保存/更新)で、このhttp://stackoverflow.com/a/43083773/40521 – Shyju