Dynamic 什么是PHP';s在c#.NET 4中为';动态';物体?

Dynamic 什么是PHP';s在c#.NET 4中为';动态';物体?,dynamic,.net-4.0,asp.net-mvc-3,razor,Dynamic,.net 4.0,Asp.net Mvc 3,Razor,在我使用ViewBag的时候,我正在使用MVC 3。我想测试是否已指定ViewBag的一个属性。我知道在PHP中可以使用isset(变量),但在.NET4中有类似的功能吗 场景是,我正在制作一个嵌套布局,通过ViewBag获取一个节标题和一个节副标题。它们由分隔符分隔,子标题是可选的。如果子标题未设置,我不想显示分隔符 这就是我想象的isset将被.NET4等价物取代的地方 @section header { <h2>@ViewBag.SectionTitle</h2

在我使用ViewBag的时候,我正在使用MVC 3。我想测试是否已指定ViewBag的一个属性。我知道在PHP中可以使用isset(变量),但在.NET4中有类似的功能吗

场景是,我正在制作一个嵌套布局,通过ViewBag获取一个节标题和一个节副标题。它们由分隔符分隔,子标题是可选的。如果子标题未设置,我不想显示分隔符

这就是我想象的isset将被.NET4等价物取代的地方

@section header 
{
    <h2>@ViewBag.SectionTitle</h2>
    @if(isset(ViewBag.SectionSubTitle)) 
    { 
        <div id="section-title-seperator"> - </div><h3>@ViewBag.SectionSubTitle</h3> 
    }
}
@节头
{
@ViewBag.SectionTitle
@if(isset(视图包部分字幕))
{ 
-@ViewBag.SectionSubTitle
}
}
除了直接回答我的问题外,我还愿意接受其他解决方案(以防我滥用ViewBag)


提前感谢。

您可以检查它是否为空,如下所示:

@if(ViewBag.SectionSubTitle!=null)

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

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

您还可以在
ViewData
属性上使用。因为
ViewData[“SectionSubTitle”]
等同于
ViewBag.SectionSubTitle
,所以在这种情况下,您可以执行以下操作:


@if(ViewData.ContainsKey(“SectionSubTitle”)

啊,好的,谢谢。顺便说一句,只是为了确保在这种情况下我没有滥用ViewBag,对吗?我建议您稍后重构它。先让它工作。不要过度使用VIEW包,考虑将事物分组成分离的模型。这样做- <代码>如果(@部分(1)!=空)CAT=部分[1 ];<代码>