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