私は次の _CreateOrEdit 部分ビューを持っています:-
@model TMS.ViewModels.RackJoin
@* This partial view defines form fields that will appear when creating and editing entities *@
@Html.AntiForgeryToken()
<div >
<span class="f">RU </span>
@Html.EditorFor(model => model.Rack.RU)
@Html.ValidationMessageFor(model => model.Rack.RU)
</div>
<div >
<span class="f">Rack Name </span>
@Html.Editor("assetName", (Model.Resource.RESOURCENAME == null ? String.Empty : Model.Resource.RESOURCENAME))
@Html.ValidationMessageFor(model => model.Resource.RESOURCENAME)
</div>
<div >
ビューは既存のレコードを編集するときにうまく機能しますが、それが新しいオブジェクトである場合、次の例外が発生します:-
オブジェクト参照がオブジェクト インスタンスに設定されていません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
ビュー内の次のコード:-
@Html.Editor("assetName", (Model.Resource.RESOURCENAME == null ? String.Empty : Model.Resource.RESOURCENAME))
アップデート
上記のビューを呼び出すアクションメソッドは次のとおりです:-
public ActionResult Create()
{
ViewBag.PossibleDataCenters = repository.AllDataCenter().OrderBy(a => a.Name).ToList() ;
ViewBag.PossibleZones = repository.AllZone().OrderBy(a => a.Name).ToList();
ViewBag.Products = repository.GetProducts("Rack").OrderBy(a => a.COMPONENTNAME).ToList();
return View();
}