Pembaruan :
Mulai Visual Studio 2015 Pembaruan 1, ada proses sederhana di GUI untuk melakukan langkah-langkah di bawah ini untuk Anda. Cukup klik kanan proyek web Anda dan pilih "Aktifkan C # 6 / VB 14". Informasi lebih lanjut tersedia di entri blog MSDN, " Fitur baru untuk mengaktifkan C # 6 / VB 14 ".
Sejak jawaban ini ditulis, fungsi ini telah ditambahkan dengan bantuan paket NuGet.
Tambahkan paket Nuget ini ke solusi Anda jika Anda menggunakan MVC5.
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
Paket nuget harus memodifikasi web.config Anda, tetapi periksa apakah konfigurasi berikut ada di file web.config Anda (dan jika tidak ditambahkan):
<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>
Di MVC6, ini sudah built-in.
Jawaban asli:
<div>
@($"Hello {this.Model.SomeProperty}")
</div>
Ini hanya bekerja di C # 6 dengan MVC6. Bahkan jika Anda menjalankan MVC5 dengan kompiler C # 6, itu tidak akan berhasil.
Triknya adalah parser pisau cukur belum cukup pintar untuk mengenali beberapa sintaksis, jadi Anda harus membungkus semuanya dalam tanda kurung (Anda harus melakukan ini saat menggunakan operator bersyarat null ( ?.
) dalam tampilan pisau cukur Anda juga).
Meskipun demikian , interpolasi string di Razor saat ini agak bermasalah di MVC6, jadi saya tidak akan terkejut jika ada beberapa masalah dengannya. apakah mereka akan ditangani atau tidak adalah masalah lain.