Как использовать новые функции c # 8.0 в представлениях Razor - PullRequest
4 голосов
/ 07 ноября 2019

Я обновил свое веб-приложение ASP.NET Mvc 5 для использования новых функций c # 8.0 через Visual Studio 2019, и все работает нормально, пока я не попытаюсь использовать эти новые функции в представлении Razor.

ДляНапример, если я попытаюсь использовать новое выражение-переключатель:

@{
    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>

Компилятор не будет жаловаться, пока я не попытаюсь добраться до страницы, что выдает ошибку компиляции.

Compilation error

Я подозреваю, что Microsoft.CodeDom.Providers.DotNetCompilerPlatform должен быть обновлен, но, похоже, нет доступных обновлений.

Есть ли способ использовать функции языка c # 8.0 в представлениях Razor

1 Ответ

2 голосов
/ 15 ноября 2019

.net framework поддерживает C # 7.3, поэтому вы не можете заставить работать Razor View

.net core 3 поддерживает C # 8, и я смог заставить ваш пример работать с приложением .net Core 3 MVC.

Вы можете посмотреть здесь: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version

Надеюсь, что выше поможет:)

...