matto0
matto0

Reputation: 1095

MVC 3 Razor Syntax for straight text output?

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

Answers (3)

KSummers
KSummers

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

Saruchi
Saruchi

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

Russ Cam
Russ Cam

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

Related Questions