Wird das unterstützt?
Wenn ja, gibt es einen Trick, um es zu aktivieren? Ich gehe davon aus, dass Razor keinen ausreichend neuen Compiler verwendet ...? Die VS2015-IDE scheint in Ordnung zu sein, aber zur Laufzeit bekomme ich
CS1056: Unerwartetes Zeichen '$'
c#
asp.net-mvc
razor
c#-6.0
Tim Schmidt
quelle
quelle
Antworten:
Update :
Ab Visual Studio 2015 Update 1 gibt es in der GUI einen einfachen Vorgang, um die folgenden Schritte für Sie auszuführen. Klicken Sie einfach mit der rechten Maustaste auf Ihr Webprojekt und wählen Sie "C # 6 / VB 14 aktivieren". Weitere Informationen finden Sie im MSDN-Blogbeitrag " Neue Funktion zum Aktivieren von C # 6 / VB 14 ".
Da diese Antwort geschrieben wurde, wurde diese Funktionalität mithilfe eines NuGet-Pakets hinzugefügt.
Fügen Sie dieses Nuget-Paket zu Ihrer Lösung hinzu, wenn Sie MVC5 verwenden.
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
Das Nuget-Paket sollte Ihre web.config ändern, überprüfen Sie jedoch, ob die folgende Konfiguration in Ihrer web.config-Datei enthalten ist (und falls nicht, fügen Sie sie hinzu):
In MVC6 ist dies integriert.
Ursprüngliche Antwort:
Dies funktioniert nur in C # 6 mit MVC6. Selbst wenn Sie MVC5 mit dem C # 6-Compiler ausführen, funktioniert dies nicht.
Der Trick ist, dass der Rasierer-Parser noch nicht intelligent genug ist, um einige Syntaxen zu erkennen. Sie müssen das Ganze daher in Klammern setzen (dies müssen Sie tun, wenn Sie den nullbedingten Operator (
?.
) auch in Ihren Rasiereransichten verwenden).Trotzdem ist die String-Interpolation in Razor im Moment in MVC6 ein bisschen fehlerhaft, daher wäre ich nicht überrascht, wenn es einige Probleme damit gäbe. ob sie angesprochen werden oder nicht, ist eine andere Frage.
quelle
Führen Sie den folgenden Befehl in der Package Manager-Konsole aus , um einen erforderlichen Befehl hinzuzufügen
CodeDom
Ihrem Projekt Anbieter . Ihreweb.config
Datei wird automatisch geändert, um dieCodeDom
erforderlichen Einstellungen hinzuzufügen .Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Neustart
Visual Studio
Hinweis: Wie @Jake in seinem Kommentar unter dieser Antwort erwähnt hat, muss das
DotNetCompilerPlatform
Paket möglicherweise nur aktualisiert werden , wenn Sie es bereits haben .quelle
Replacement CodeDOM providers that use the new .NET Compiler Platform ("Roslyn") compiler as a service APIs. This provides support for new language features in systems using CodeDOM (e.g. ASP.NET runtime compilation) as well as improving the compilation performance of these systems.