На вопрос: «почему второй не действителен?», В дополнение к тому, что говорят Бетти и Джастин, есть проблемы, характерные для того, что вы показываете: внутри фигурных скобок ваш код должен следовать нормальному синтаксису c #таким образом, вы не можете получить просто "a == b? c: d", не присвоив результат чему-либо.И вам нужна точка с запятой.Так что вы могли бы сказать
@{string message = Model.WillAttend == true ?
"This will be an exciting party with you" :
"So sorry. You'll lose the beeer";}