Null-Propagierungsfunktion und Razor-Ansichten

9

Hallo, ich habe ein seltsames Problem.

Ich benutze die Null-Propagierungsfunktion in meinen Rasierklingen-Seiten wie folgt

%Vor%

mein Projekt basiert auf 4.6.1 Framework und ich verwende den letzten codeDom Compiler 1.0.4 und Compiler 2.1.0

In der Rasierer-Ansicht habe ich eine Fehlermeldung, dass ich ein C # 6-Feature nicht mit C # 5 verwenden kann.

Aber mein Projekt verwendet c # 7 ....

Ich rolle zurück zu c # 6 und es funktioniert gut.

Weiß jemand in diesem Fall c # 7?

Danke.

Web.config

%Vor%

wurde auf 7 gesetzt und ich rolle zurück auf 6. Danach hatte ich den Fehler nicht mehr, Meine Ansichten kompilieren und funktionieren korrekt

    
Julien 03.05.2017, 10:09
quelle

1 Antwort

6

Es scheint, dass Sie C # 6 und C # 7 Features tatsächlich verwenden können, obwohl es ein wenig Arbeit braucht.

Fügen Sie diese Pakete hinzu:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform (derzeit 1.0.4)
  • Microsoft.Net.Compilers (derzeit 2.1.0)

Stelle sicher, dass du diesen Abschnitt in deinem web.config :

hast %Vor%

Und die erforderlichen Importe in Ihrer csproj -Datei (sollte dort automatisch sein, aber überprüfen Sie es):

%Vor%

Und dieses Ziel darin:

%Vor%

Vorherige Antwort:

Sie können das nicht verwenden, da die ASP.NET MVC Razor-Ansichts-Engine Roslyn nicht zum Kompilieren Ihrer Ansichten verwendet. Daher kann es keine Funktionen verwenden, die ab C # 6 verfügbar sind (der Nullausbreitungsoperator = C # 6).

Sie müssen Ihren Code im Pre-C # 6-Stil schreiben oder ein anderes Paket verwenden, um eine alternative View-Engine wie die von Stack Exchange zu verwenden (Danke für Marc Gravell , um darauf zu zeigen): Ссылка .

Entsprechend ihrer Dokumentation müssen Sie das Paket einschließen:

%Vor%

und dann am Ende von Application_Start in Global.asax.cs :

%Vor%     
Patrick Hofman 03.05.2017, 10:13
quelle

Tags und Links