What is the difference between them both. I thought they were the same but today I realized that they are not.
Why this is correct
@(Model.WillAttend ==
To the question: "why is the second one not valid?", in addition to what Betty and Justin say, the issues specific to what you show: inside curly braces you need your code to follow the normal syntax of c#, so you can't have just a loose "a==b?c:d", without assigning the result to something. And you need a semicolon. So you could say
@{string message = Model.WillAttend == true ?
"This will be an exciting party with you" :
"So sorry. You'll lose the beeer";}