Ответ 1
Обновление
Начиная с обновления Visual Studio 2015 Update 1, в графическом интерфейсе есть простой процесс, чтобы сделать следующие шаги для вас. Просто щелкните правой кнопкой мыши свой веб-проект и выберите "Включить С# 6/VB 14". Более подробная информация доступна в сообщении в блоге MSDN, Новая функция для включения С# 6/VB 14".
Поскольку этот ответ был написан, эта функциональность была добавлена с помощью пакета NuGet.
Добавьте этот пакет Nuget к вашему решению, если вы используете MVC5.
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
Пакет nuget должен изменить ваш web.config, но проверьте, что следующая конфигурация находится в вашем файле web.config(и если он не добавляет его):
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
В MVC6 это встроено.
Оригинальный ответ:
<div>
@($"Hello {this.Model.SomeProperty}")
</div>
Это работает только в С# 6 с MVC6. Даже если вы используете MVC5 с компилятором С# 6, это не сработает.
Хитрость заключается в том, что анализатор бритвы недостаточно умен, чтобы распознавать некоторые синтаксисы, поэтому вы должны обернуть все это в круглых скобках (вы должны сделать это при использовании оператора с нулевым условием (?.
) в ваших бритвах также).
Тем не менее, строка интерполяции в Razor немного багги на данный момент в MVC6, поэтому я не удивлюсь, если возникнут некоторые проблемы. будут ли они адресованы или нет, это другое дело.