Kjensen
Kjensen

Reputation: 12384

Outputting literal HTML between razor statements results in compilation error

I have a foo object, and I want to output:

Title, Location

So I try...:

@if (sometruestuff){
    @foo.Title, @foo.Location
}

@if (sometruestuff){
    @foo.Title , @foo.Location
}

Both fail to compile.

However...:

@if (sometruestuff){
    @foo.Title<span>,</span> @foo.Location
}

...works.

Is there some trick I am missing?

Edit: This happens inside a codeblock, updated to reflect this.

Upvotes: 4

Views: 4313

Answers (2)

Darin Dimitrov
Darin Dimitrov

Reputation: 1039120

You could escape the , using the @: because the Razor parser considers it as part of the server side code and if you want to output the comma as is in the HTML it needs to be escaped:

@if (sometruestuff){
    @foo.Title@:, @foo.Location
}

Upvotes: 9

santiagoIT
santiagoIT

Reputation: 9431

It seems you are inside a code block, because otherwise it should normally work. You can try this:

<text>
@foo.Title, @foo.Location
</text>

Upvotes: 0

Related Questions