MVC3 Razor: Displaying html within code blocks

In my cshtml files I have a lot of blocks with stuff like this:

@if(Model.foo)
{
    <span>Hello World</span>
}

The only reason the span is there is because I can't find any other way to force it to recognize that "Hello World" is part of the html unless I surround it in html tags. Is there a good way to escape the code that doesn't involve adding meaningless tags to the display?

Answers


You could use @: to escape:

@if(Model.foo)
{
    @:Hello World
}

or the special <text> tag which is not outputted in the response:

@if(Model.foo)
{
    <text>Hello World</text>
}

@if(Model.foo)
{
  @:Hello World
}

You can add text in as below:

@if(Model.foo)
{
    @:Hello World
}

when you use @ razor switch it to code block mode. Hence you need to specify text as above.


<text>Explicit HTML<text>

@(Explicit C#)

many developers has provided many ways above .. here is one more which is working fine in MVC 4 .. I hope it will work for MVC 3 also ..

@if(Model.foo)
{
    @Html.Label("Hello World")
}

Need Your Help

Programmatic way to get variable name in C?

c variables variable-names

I am developing a tool to dump data from variables.

Programmatically open Maps app in iOS 6

ios objective-c ios6 mapkit

Previous to iOS 6, opening a URL like this would open the (Google) Maps app: