Каков правильный способ проверки в Razor, если ViewBag имеет значение? Я знаю, что I can doПроверяет ViewBag.Val! = Неверно в Razor?
if(ViewBag.Foo != null) {
...
}
Но, глядя на события поток в VS 2015 Я замечаю это порождает (обрабатывается) RuntimeBinderException
.
Тот факт, что это вызывает ошибку, заставляет меня подозревать, что это неправильный способ проверить наличие значения и на самом деле наносит вред производительности (хотя я не проводил никакого тестирования). Кроме того, это не поможет вам различать значение, отсутствующее, и значение, установленное на null
.
Есть ли более правильный подход?
Это не зависит от бритвы, это просто динамический член. См. Http://stackoverflow.com/questions/2998954/dynamic-how-to-test-if-a-property-is-available, http://stackoverflow.com/questions/9956648/how-do-i-check -if-a-property-exists-on-a-dynamic-anonymous-type-in-c, http://stackoverflow.com/questions/2839598/how-to-detect-if-a-property-exists-on -an-expandoobject, http://stackoverflow.com/questions/10899613/dynamic-object-how-to-tell-if-a-property-is-defined – CodeCaster
Это хороший момент @CodeCaster - любопытно удивил неловкость все эти подходы –