我们收到 _Layout.cshtml 中使用的 Viewbag 项目的 RuntimeBinderException。我们在内存分析器中观察到这些异常。它们不是致命的(一切正常),但很烦人,我们想清除它们。
例如,以下代码会导致异常:
<title>@ViewBag.Title</title>
...
@RenderBody()
Run Code Online (Sandbox Code Playgroud)
ViewBag.Title 在视图中设置。
此外,我们还有 ViewBag.WebAnalyticsParameters,它在控制器操作中设置并在 _Layout.cshtml 中使用。
当我们从 _Layout 代码中删除 ViewBag.Title 和 ViewBag.WebAnalyticsParameters 时,异常不会发生并被探查器应用程序捕获。
附带说明一下,异常仅发生在页面初始加载时。刷新后,没有出现异常,说明问题出在视图编译的地方。
更新 1:我创建了一个空的 MVC 4 应用程序,但再次出现此错误。您可以看到附图。
此示例应用程序中的视图(主页/索引)包含以下代码:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
Run Code Online (Sandbox Code Playgroud)
更新 2:我已将项目从 MVC 4 升级到 5.3.2。异常情况仍然发生。
我需要将屏幕捕获实用程序移植到 Linux。
我对Linux不熟悉。在 Windows 上,您可以获得特定窗口或桌面的句柄,并使用 Win32 API 中的 BitBlt,您可以复制图像并将其保存到 BMP 文件,甚至将其转换为 Jpeg 格式。
据我所知,在 Linux 上有不同的桌面环境,例如 KDE。我应该以什么为发展目标?或者哪个分布?另外,您建议使用哪种开发环境?我用 C/C++ 进行编程。