加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 根据需要设置RenderSection:false,但仍抛出“对

发布时间:2020-12-16 07:20:01 所属栏目:asp.Net 来源:网络整理
导读:此代码应该将我的Section标记为可选. _layout.cshtml @RenderSection("ViewStyles",false) 要么 @RenderSection("ViewStyles",required:false) 我试过了两个. 然而,它引发了一个例外 Exception Details: System.NullReferenceException: Object reference no
此代码应该将我的Section标记为可选.

_layout.cshtml 
@RenderSection("ViewStyles",false)

要么

@RenderSection("ViewStyles",required:false)

我试过了两个.

然而,它引发了一个例外

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

我尝试在我的视图中添加一个空白部分,不需要使用ViewStyles部分

@section ViewStyles {  }

但我仍然得到同样的例外.

还有另一种解决方法吗?

解决方法

这与您的部分无关.我不确定你在哪里认为该部分为空是产生这个错误,但这绝对不是发生了什么.未设置为对象实例的对象引用是当您尝试从计算结果为null的变量引用属性时生成的运行时错误.当某个变量本身在运行时解析为null时,某处的某些代码会引用一个变量属性(同样,不再讨论这里的部分).

例如,假设您执行以下操作:

Foo foo = db.Foos.Find(id);

变量foo被定义为Foo,因此您可以引用Foo所具有的任何属性.如果你的Foo类有一个名为Bar的属性.然后,您可以尝试通过以下方式在代码中的某处获取此属性的值:

foo.Bar

那将编译得很好.但是,如果找不到具有id的Foo,则foo的实际值为null,null不具有名为Bar的属性,该属性只能在运行时确定.这就是错误告诉你正在发生的事情:你的代码中的某个地方,你正在调用某个变量的属性而不先检查变量的空值.在上面的示例中,您通常会执行以下操作:

Foo foo = db.Foos.Find(id);
if (foo != null)
{
    bar = foo.Bar;
}

您还可以使用三元组来提供某种后备:

bar = foo != null ? foo.Bar : "Baz";

这样,bar将保持foo.Bar的值,或者如果foo为null,则为“Baz”字符串.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读