对于"动态"对象的属性,PHP在c#.NET 4中的等价是什么?

Mat*_*els 6 dynamic .net-4.0 razor asp.net-mvc-3

我在使用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> 
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的问题的直接答案旁边,我也对替代解决方案持开放态度(如果我滥用ViewBag).

提前致谢.

Fil*_*erg 14

你可以检查它是否null是这样的:

@if(ViewBag.SectionSubTitle != null).

isset()在PHP中实际上只是检查是否存在值.从手册:

如果测试已设置为NULL的变量,则isset()将返回FALSE

您也可以ViewDataDictionary.ContainsKeyViewData酒店使用.因为ViewData["SectionSubTitle"]是equavilient来ViewBag.SectionSubTitle所以在这种情况下,你可以这样做:

@if(ViewData.ContainsKey("SectionSubTitle"))