2012-05-14 24 views
1

我一直在開發Castle Monorail MVC Web應用程序一段時間。我開始用Asp.Net MVC 3和Razor學習和開發一些項目。ASP.Net MVC3具有空值的Razor模板變量

我使用NVelocity作爲Monorail的視圖引擎。它能夠使用通過PropertyBag傳遞的變量,如$!variablename。這允許我使用as,如果變量等於null,那麼它不會打印任何值並且不會引發異常。

是否有任何方法與MVC 3一起使用,或者我總是必須檢查與ViewData傳遞的變量是否爲null?

在此先感謝。

回答

4

如果使用ViewBagViewData傳遞一個字符串,你不必檢查無效。

如果傳遞一個更復雜的對象,比如UserObject帶有屬性Name,則嘗試訪問@ViewBag.UserObject.Name會導致錯誤。在這種情況下,你應該檢查是否爲空,如下所示:

@if (ViewBag.UserObject != null) { ViewBag.UserObject.Name } 
+0

謝謝,我將檢查複雜對象的無效狀態。 NVelocity也處理複雜的對象,但它是一個很好的方法來檢查複雜的對象無論如何。 – vardars