36

我正在使用剃刀语法,我想在吐出 html 之前检查是否设置了某些 ViewBag 值。如果设置了一个值,那么我想把它写出来。如果不是,我希望它什么也不做。

@if (ViewBag.UserExists != null) 
   { Response.Write(String.Format("<h3>{0}</h3>", ViewBag.UserExists)); }

这似乎无法正常工作。该代码显示在我上面代码上方的另一个 h2 之上。我有两种注册控制器方法。一个是get,另一个是接受post。如果用户存在,我正在设置需要向用户显示的 ViewBag 项目。

谢谢

4

3 回答 3

93

不要使用 Response.Write。而是这样做:

@if (ViewBag.UserExists != null)
{
    <h3>@ViewBag.UserExists</h3>
}
于 2011-08-04T03:35:03.100 回答
1

可能对需要检查 NULL 以及 ViewBag 数据类型的人有用

if (ViewBag.MyBag != null & ViewBag.MyBag is string) //int or Foo or anyObject
            {
                <div class="row">
                    <br />
                    <div class="alert alert-danger col-sm-offset-2 col-md-8">
                        @ViewBag.MyBag
                    </div>
                </div>
           }
于 2016-09-20T18:03:37.210 回答
0

代码可以进一步简化为:

<h3>
   @(ViewBag.UserExists??"USER DOES NOT EXIST")
</h3>
于 2018-10-05T16:15:00.737 回答