Viewbag check to see if item exists and write out html and value error
Asked Answered
S

3

36

I'm using razor syntax and I want to check to see if certain ViewBag values are set before I spit out the html. If a value is set then I want to write it out. If not I want it to do nothing.

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

This doesn't appear to be working correctly. The code shows up on top of another h2 I have above the code above. I have two register controller methods. One is the get and the other accepts the post. If the user exists I am setting a ViewBag item that needs to be displayed to the user.

Thanks

Sungkiang answered 4/8, 2011 at 3:20 Comment(0)
G
93

Don't use Response.Write. Instead do this:

@if (ViewBag.UserExists != null)
{
    <h3>@ViewBag.UserExists</h3>
}
Goldman answered 4/8, 2011 at 3:35 Comment(3)
Another option would be to use @Html.Raw("<h3>" + ViewBag.UserExists + "</h3>") as I believe the above will not render as desired if ViewBag.UserExists contains any HTML.Deviate
I noticed this, and I had a error and realized since I was inside a form , I need to drop the "@" if (ViewBag.IsValid != null) {Eadith
Don't use Html.Raw unless you EXPECT there to be safe HTML, otherwise you are exposing yourself to exploitation. If you are new to Razor one good rule of thumb is if you are writing Response.Write("...") then you're doing it wrong.Exciting
L
1

May be useful to some one who need to check NULL as well data type of 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>
           }
Lolita answered 20/9, 2016 at 18:3 Comment(0)
S
0

The code could be further simplified to :

<h3>
   @(ViewBag.UserExists??"USER DOES NOT EXIST")
</h3>
Skijoring answered 5/10, 2018 at 16:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.