Razor If/Else conditional operator syntax [duplica

2019-01-10 18:24发布

问题:

This question already has an answer here:

  • How to use ternary operator in razor (specifically on HTML attributes)? 6 answers

Not having much luck, I have the following if/else statement in Razor which works perfectly

<small>
  @if(deletedView){
     @:Deleted
  } 
  else {
     @:Created
  } by
</small> 

I am trying to do something like this:

<small>
  @(deletedView) ? @:Deleted : @:Created by
</small>

But that fails miserably. What is the proper syntax?

回答1:

You need to put the entire ternary expression in parenthesis. Unfortunately that means you can't use "@:", but you could do something like this:

@(deletedView ? "Deleted" : "Created by")

Razor currently supports a subset of C# expressions without using @() and unfortunately, ternary operators are not part of that set.