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
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
:
Und die erforderlichen Importe in Ihrer csproj
-Datei (sollte dort automatisch sein, aber überprüfen Sie es):
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
:
Tags und Links c# razor asp.net-mvc-5 c#-7.0