Reputation: 1095
Using Razor how/can you write straight text with out wrapping it in some type of html tag?
Example (This works but adds extra span tags):
@{ var foo = true; }
@if(foo) { <span>Yes</span> } else { <span>No</span> }
I'd like to keep my final markup as clean as possible and not have the extra tags.
Thanks!
Upvotes: 66
Views: 53862
Reputation: 32
If you're trying like I am to inject data into Javascript I found this to work.
@Html.Raw(table)
I was pulling data from a database and injecting it into the code for a Google chart.
So in the OP's case,
@if (foo) { Html.Raw("Yes") } else { Html.Raw("No") }
Upvotes: 0
Reputation: 366
A point worth to be noted here:
@: can be used only inside an @
(in case any body like me is wondering why @: does not work!)
Upvotes: 17
Reputation: 125488
use the <text>
tags
@{ var foo = true; }
@if(foo) { <text>Yes</text> } else { <text>No</text> }
The <text>
tag signals to the razor view engine to write the contents to the output.
Alternatively, you can use @:
@{ var foo = true; }
@if(foo) { @:Yes } else { @:No }
Upvotes: 136