我有以下_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 >
编辑现有记录时视图效果很好,但如果它是新对象,我将得到以下异常: -
对象引用未设置为对象的实例。描述: 在执行当前期间发生了未处理的异常 网络请求。请查看堆栈跟踪以获取更多信息 错误以及它在代码中的起源。
异常详细信息: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();
}
答案 0 :(得分:0)
我认为问题在于,当您尝试传入新对象时,要么将空模型传递给View,要么模型的所有属性都未初始化
所以在行
Model.Resource.RESOURCENAME
如果Model为null或Model.Resource为null,则会产生相同的错误。
在使用Model