我在使用ViewBag时正在使用MVC 3.我想测试是否已分配ViewBag的其中一个属性.我知道在
PHP中你可以做isset(变量),但在.NET 4中有类似的东西吗?
场景是我正在制作一个嵌套的布局,它通过ViewBag获取一个节标题和一个字幕副标题.它们由分隔符分隔,子标题是可选的.如果未设置子标题,我不想显示分隔符.
这就是我想象它将被.NET 4 equivelant取代的地方.
@section header { <h2>@ViewBag.SectionTitle</h2> @if(isset(ViewBag.SectionSubTitle)) { <div id="section-title-seperator"> - </div><h3>@ViewBag.SectionSubTitle</h3> } }
在我的问题的直接答案旁边,我也对替代解决方案持开放态度(如果我滥用ViewBag).
提前致谢.
您可以检查它是否为null,如下所示:
@if(ViewBag.SectionSubTitle!= null).
PHP中的isset()实际上只检查是否存在值.从手册:
isset() will return FALSE if testing
a variable that has been set to NULL
您还可以在ViewData属性上使用ViewDataDictionary.ContainsKey
.因为ViewData [“SectionSubTitle”]与ViewBag.SectionSubTitle相同,所以在这种情况下你可以这样做:
@if(ViewData.ContainsKey( “SectionSubTitle”))