私の行動の1つで、私はこれを持っています:
ViewBag.Val = "a val";
View();
関連するビュー:
@{
Model.Attr = ViewBag.Val;
}
例外の詳細:
System.NullReferenceException: Object reference not set to an instance of an object.
...
Line 27: Model.Attr = ViewBag.Val;
値をビューに渡し、モデル属性をその値に設定する方法である場合、これは問題を引き起こしている実際の行ですか。
編集:
実行をログに記録しました。割り当ては正常に機能します。
アクションを取得:
var Obj = MyModel();
Obj.Attr = 123;
return View(Obj);
見る:
<p>@Model.Attr</p> // shows 123
しかし、MyModel を受け取るポスト アクションでは、MyModel.Atrr は 0 です。
なぜこれが起こっているのか、そしてそれを修正する方法。
編集 2
ビューがバインドされているモデルは、ポスト アクションで処理されると予想されるモデルであり、ビューまたは前の (取得) アクションで値を割り当てたいモデルです。「get action」から値「a」をビューに渡し、「model.a」=「a」を割り当ててから、「post action」で「モデル」(「a」が付加されたもの) を処理したいだけです。 .
ログからわかることは、ビューにバインドされたモデルと、「アクションの取得」からビューに渡すモデルが異なるインスタンスであることです。