Viewbag check to see if item exists and write out html and value error
77,578
Solution 1
Don't use Response.Write. Instead do this:
@if (ViewBag.UserExists != null)
{
<h3>@ViewBag.UserExists</h3>
}
Solution 2
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>
}
Author by
Dietpixel
Updated on October 06, 2020Comments
-
Dietpixel almost 4 years
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
-
dav_i about 11 yearsAnother option would be to use
@Html.Raw("<h3>" + ViewBag.UserExists + "</h3>")
as I believe the above will not render as desired ifViewBag.UserExists
contains any HTML. -
Admin almost 11 yearsI noticed this, and I had a error and realized since I was inside a form , I need to drop the "@" if (ViewBag.IsValid != null) {
-
kingdango over 10 yearsDon'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.