_Layout.cshtmlで使用されるViewbag項目に対してRuntimeBinderExceptionが発生しています。これらの例外はメモリプロファイラで観察されます。彼らは致命的ではありません(すべて正常に動作します)が、迷惑です。ViewBag使用時のRuntimeBinderException
<title>@ViewBag.Title</title>
...
@RenderBody()
ViewBag.Titleを考慮して設定されている:
は、例えば、以下のコードは、例外を引き起こします。
また、コントローラアクションで設定され、_Layout.cshtmlで使用されるViewBag.WebAnalyticsParametersもあります。
_LayoutコードからViewBag.TitleおよびViewBag.WebAnalyticsParametersを削除すると、例外は発生せず、プロファイラアプリケーションによって捕捉されます。
例外として、例外はページの最初の読み込み時にのみ発生します。それをリフレッシュした後、例外が発生せず、ビューのコンパイルは問題が発生した場所です。
アップデート1:私は、空のMVC 4アプリケーションを作成して、再度このエラーを取得しました。 添付の画像を見ることができます。
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
アップデート2:このサンプルアプリで
ビュー(ホーム/インデックス)は、次のコードが含まれて私は5.3.2にMVC 4からプロジェクトをアップグレードしました。例外はまだ発生します。
ビューにViewBag.Titleを設定していますが、それを直接入力するだけではないのはなぜですか? – Blackunknown
コントローラ内でViewBagの値を設定するコードとViewを共有してください –