使用 ViewBag 时出现 RuntimeBinderException
RuntimeBinderException when using ViewBag
我们正在为 _Layout.cshtml 中使用的 Viewbag 项目获取 RuntimeBinderException。我们在内存分析器中观察到这些异常。它们不是致命的(一切正常)但很烦人,我们想清除它们。
例如,以下代码会导致异常:
<title>@ViewBag.Title</title>
...
@RenderBody()
ViewBag.Title在视图中设置。
此外,我们还有 ViewBag.WebAnalyticsParameters,它在控制器操作中设置并在 _Layout.cshtml 中使用。
当我们从 _Layout 代码中删除 ViewBag.Title 和 ViewBag.WebAnalyticsParameters 时,异常不会发生并被探查器应用程序捕获。
附带说明一下,异常仅发生在页面的初始加载时。刷新后没有异常,说明视图编译是我们遇到问题的地方。
更新 1:我创建了一个空的 MVC 4 应用程序并再次收到此错误。
你可以看到附件图像。
此示例应用中的视图 (Home/Index) 包含以下代码:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
更新 2:我已将项目从 MVC 4 升级到 5.3.2。仍然出现异常。
这些异常是由正在使用的基础动态对象引起的。 .NET 框架总是以某种方式抛出这些异常。
解决方法:在VS中转到菜单Tools/Options,select左侧的顶级项目Debugging
,select [v] 仅启用我的代码。这避免了 VS 在框架深处抛出的异常上无用地中断。
我们正在为 _Layout.cshtml 中使用的 Viewbag 项目获取 RuntimeBinderException。我们在内存分析器中观察到这些异常。它们不是致命的(一切正常)但很烦人,我们想清除它们。
例如,以下代码会导致异常:
<title>@ViewBag.Title</title>
...
@RenderBody()
ViewBag.Title在视图中设置。
此外,我们还有 ViewBag.WebAnalyticsParameters,它在控制器操作中设置并在 _Layout.cshtml 中使用。
当我们从 _Layout 代码中删除 ViewBag.Title 和 ViewBag.WebAnalyticsParameters 时,异常不会发生并被探查器应用程序捕获。
附带说明一下,异常仅发生在页面的初始加载时。刷新后没有异常,说明视图编译是我们遇到问题的地方。
更新 1:我创建了一个空的 MVC 4 应用程序并再次收到此错误。 你可以看到附件图像。
此示例应用中的视图 (Home/Index) 包含以下代码:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
更新 2:我已将项目从 MVC 4 升级到 5.3.2。仍然出现异常。
这些异常是由正在使用的基础动态对象引起的。 .NET 框架总是以某种方式抛出这些异常。
解决方法:在VS中转到菜单Tools/Options,select左侧的顶级项目Debugging
,select [v] 仅启用我的代码。这避免了 VS 在框架深处抛出的异常上无用地中断。