我一直在开发Castle Monorail MVC Web应用程序一段时间。我开始学习和开发一些 Asp.Net MVC 3和Razor的项目。
我使用NVelocity作为Monorail的视图引擎。它能够使用通过 PropertyBag 传递的变量,如 $!variablename
。这允许我使用 as,如果变量等于 null,那么它不会打印任何值并且不会引发异常。
是否有任何方法可以像这样用于 MVC 3,或者我是否总是必须检查使用 ViewData 传递的变量是否为空?
提前谢谢。
如果使用ViewBag
或ViewData
传递字符串,则不必检查空性。
如果要传递更复杂的对象,例如具有属性 Name
的UserObject
,则尝试访问@ViewBag.UserObject.Name
将导致错误。在这种情况下,您应该检查无效性,如下所示:
@if (ViewBag.UserObject != null) { ViewBag.UserObject.Name }