Что такое эквивалент isset PHP в c#.NET 4 для свойств "динамических" объектов?

Я работаю с MVC 3 в тот момент, когда я использую ViewBag. Я хотел бы проверить, было ли назначено одно из свойств ViewBag. Я знаю, что в PHP вы можете сделать isset (переменная), но есть ли что-то подобное в .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).

спасибо заранее.

1 ответов


вы можете проверить, если это null такой:

@if(ViewBag.SectionSubTitle != null).

isset() в PHP на самом деле просто проверяет, есть ли значение. Из руководства:

isset () вернет FALSE, если тестирование переменная имеет значение null

вы также можете использовать ViewDataDictionary.ContainsKey на ViewData собственность. Потому что ViewData["SectionSubTitle"] это equavilient к ViewBag.SectionSubTitle в этом случае вы могли бы сделать:

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