在MVC
,有時我設置的ViewBag
特定屬性:爲什麼當屬性不存在時,ViewBag.SomeProperty不會引發異常?根據一些condition.For例如
if(someCondition)
{
// do some work
ViewBag.SomeProperty = values;
}
return View();
在我View
我檢查屬性是否爲null這樣的:
@if(ViewBag.SomeProperty != null)
{
...
}
直到現在我想這應該拋出例外,因爲如果我的條件不滿意,那麼SomeProperty
永遠不會被設置。這就是爲什麼我總是使用else
語句將該屬性設置爲null
。但我只注意到,它不會拋出一個異常即使該屬性不存在。例如在Console Application
如果我做以下操作,我得到一個RuntimeBinderException
:
dynamic dynamicVariable = new {Name = "Foo"};
if(dynamicVariable.Surname != null) Console.WriteLine(dynamicVariable.Surname);
但是,當涉及到ViewBag
。什麼是對區別它不會發生?