当我使用ViewBag时,我正在使用MVC 3。我想测试是否已分配ViewBag的属性之一。我知道在PHP中可以进行isset(variable),但是.NET 4中是否有类似的东西?
场景是我正在制作一个嵌套布局,该布局通过ViewBag带有节标题和节字幕。它们由分隔符分隔,并且副标题是可选的。如果未设置副标题,我不想显示分隔符。
这就是我想象的将isset替换为.NET 4等价物的方式。
@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
您还可以在
ViewDataDictionary.ContainsKey
属性上使用 ViewData
。由于ViewData["SectionSubTitle"]
与ViewBag.SectionSubTitle
等同,因此在这种情况下,您可以执行以下操作:@if(ViewData.ContainsKey("SectionSubTitle"))
关于dynamic - 对于 'dynamic'对象的属性,在C#.NET 4中,PHP的isset等价的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946827/