Isso é compatível?
Em caso afirmativo, existe algum truque para ativá-lo? Estou assumindo que o Razor não está usando um compilador novo o suficiente ...? O IDE VS2015 parece estar bem com ele, mas em tempo de execução estou conseguindo
CS1056: Caráter inesperado '$'
c#
asp.net-mvc
razor
c#-6.0
Tim Schmidt
fonte
fonte
Respostas:
Atualização :
A partir da Atualização 1 do Visual Studio 2015, há um processo simples na GUI para executar as etapas abaixo para você. Simplesmente clique com o botão direito em seu projeto da web e selecione "Ativar C # 6 / VB 14". Mais informações estão disponíveis na postagem do blog do MSDN, " Novo recurso para habilitar C # 6 / VB 14 ".
Desde que esta resposta foi escrita, essa funcionalidade foi adicionada com a ajuda de um pacote NuGet.
Adicione este pacote Nuget à sua solução se estiver usando MVC5.
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
O pacote nuget deve modificar seu web.config, mas verifique se a seguinte configuração está em seu arquivo web.config (e se não estiver, adicione-o):
No MVC6, isso é integrado.
Resposta original:
Isso só funciona em C # 6 com MVC6. Mesmo se você estiver executando MVC5 com o compilador C # 6, ele não funcionará.
O truque é que o analisador razor ainda não é inteligente o suficiente para reconhecer algumas sintaxes, então você deve colocar tudo entre parênteses (você deve fazer isso ao usar o operador nulo-condicional (
?.
) em suas visualizações de navalha também).Dito isso, a interpolação de strings no Razor é um pouco problemática no momento no MVC6, então eu não ficaria surpreso se houvesse alguns problemas com isso. se eles serão ou não tratados é outra questão.
fonte
Execute o seguinte comando no console do gerenciador de pacotes para adicionar um
CodeDom
provedor necessário ao seu projeto. Ele modificará seuweb.config
arquivo automaticamente para adicionarCodeDom
as configurações necessárias a ele.Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Reiniciar
Visual Studio
Nota: Como @Jake mencionou em seu comentário sob esta resposta, se você já tem o
DotNetCompilerPlatform
pacote, ele só precisa ser atualizado.fonte
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.