【问题标题】:HTML.Editor with null values具有空值的 HTML.Editor
【发布时间】:2013-08-05 12:56:19
【问题描述】:

我有以下 _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();
        } 

【问题讨论】:

  • 你能解释一下你的观点吗?
  • 修复是什么,我的意思是你能修复它吗?
  • 你在数据库中使用hashset吗?
  • 不,我没有使用哈希集。

标签: asp.net-mvc razor


【解决方案1】:

我认为问题在于,当您尝试传入新对象时,要么将空模型传递给视图,要么模型的所有属性都未初始化

就这样

Model.Resource.RESOURCENAME

如果 Model 为 null 或 Model.Resource 为 null,则会给出与您遇到的相同的错误。

在使用 Model 之前尝试检查 NULL

【讨论】:

  • 我该怎么做?我提供了调用此视图的 Get 操作方法。
猜你喜欢
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多