В простой Viewbag.Title, получение исключения RuntimeBinderException

У меня действительно простой ViewBag.Title. Вот так:

@{
    ViewBag.Title = "My Title";
    ViewBag.MiniTitle = "Sub - Title";
}

который анализируется на _Layout.cshtml, на

<title>@ViewBag.Title</title>

Однако я получаю это исключение:

Thrown: "'System.Dynamic.DynamicObject' does not contain a definition for 'Title'"
(Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) 
Exception Message = "'System.Dynamic.DynamicObject' does not contain a definition for 
'Title'", Exception Type = "Microsoft.CSharp.RuntimeBinder.RuntimeBinderException"

Я искал, и я не мог найти много информации об этом. Это в основном та же проблема, с которой сталкивался этот парень: http://forums.asp.net/t/1715878.aspx?MVC3+Razor+Viewbag+Title+RuntimeBinderException

Моя проблема тоже такая же, как и последний парень, который опубликовал. Это не создает для меня никаких проблем, проекты отлично работают, а также мои заголовки. Однако мне не нравится тот факт, что исключение вызывается из-за того, что они дороги.

Кто-нибудь знает, как я могу исправить эту проблему? Спасибо!

Ответ 1

Может быть, вы используете @ViewBag.Title, прежде чем объявлять его, например, если ваш файл макета имеет

<title>@ViewBag.Title</title>

но вы определяете заголовок LATER в частичном представлении или аналогичном

@{
    ViewBag.Title = "My Title";
    ViewBag.MiniTitle = "Sub - Title";
}

попробуйте установить ViewBag.Title в действии контроллера, чтобы он был доступен до вызова View()

Ответ 2

Я пробовал это, и он работает для меня:

@(ViewBag.GetType().GetProperty("Title") == null ? "" : ViewBag.Title)

это старый вопрос, но, возможно, он помогает кому-то.

С уважением.

Ответ 3

Я попытался восстановить этот вопрос без везения.

Вы установили ViewBag.Title на главной странице, и эта ошибка возникает из другого представления, в котором вы не определяете ViewBage.Title имущество.

Так как ViewBag.Title - это локальная переменная главной страницы, другой вид не получит ее и выбрасывает указанную ошибку.

Теперь попробуйте использовать тег ViewBag.MiniTitle. Вы все еще получаете такую ​​же ошибку?

Пожалуйста, поделитесь.