我正在使用C#6.0测试Visual Studio 2015,但语言功能不起作用.在MVC Web应用程序中,以下代码编译:
if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName))
{
// More logic here...
}
Run Code Online (Sandbox Code Playgroud)
但是,当我通过Debug和IIS Express运行应用程序时,我收到以下错误:
CS1525:无效的表达式术语'.'
如何启用这些功能?
我已经更新了ASP.NET Mvc 5 Web应用程序,以通过Visual Studio 2019使用新的c#8.0功能,并且一切正常,直到我尝试在Razor视图中使用这些新功能为止。
例如,如果我尝试使用新的switch表达式:
@{
ViewBag.Title = "About";
var foo = 1;
var bar = foo switch
{
1 => "one",
2 => "two",
_ => string.Empty
};
}
<h2>@ViewBag.Title.</h2>
<h3>@ViewBag.Message</h3>
<p>Use this area to provide additional information.</p>
Run Code Online (Sandbox Code Playgroud)
直到我尝试访问该页面时,编译器才会抱怨,这给了我编译错误。
我怀疑Microsoft.CodeDom.Providers.DotNetCompilerPlatform必须更新,但似乎没有可用的更新。
有什么方法可以在Razor视图中使用c#8.0语言功能?