tabular - string value c#



Interpolação de strings em uma visualização Razor? (2)

  1. Execute o seguinte comando no Package Manager Console para adicionar um provedor CodeDom necessário ao seu projeto. Também modifica seu arquivo web.config automaticamente para adicionar o CodeDom requer configurações.

    Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  1. Reinicie o Visual Studio

Nota: Como o @Jake mencionou em seu comentário nesta resposta, se você já DotNetCompilerPlatform pacote DotNetCompilerPlatform , tente atualizá-lo.

https://src-bin.com

Isso é suportado?

Se sim, existe algum truque para habilitá-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 eu estou recebendo

CS1056: Caractere inesperado '$'


Answer #1

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 do mouse no 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 ativar o C # 6 / VB 14 ".

Desde que esta resposta foi escrita, essa funcionalidade foi adicionada com a assistência de um pacote NuGet.

Adicione este pacote Nuget à sua solução se você estiver usando o MVC5.

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

O pacote nuget deve modificar o seu web.config, mas verifique se a seguinte configuração está no seu arquivo web.config (e, se não estiver, adicione-o):

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>

No MVC6, isso é interno.

Resposta original:

<div>
    @($"Hello {this.Model.SomeProperty}")
</div>

Isso funciona apenas em C # 6 com MVC6. Mesmo se você estiver executando o MVC5 com o compilador C # 6, ele não funcionará.

O truque é que o analisador de navalhas ainda não é inteligente o suficiente para reconhecer algumas sintaxes; portanto, você deve colocar a coisa toda entre parênteses (você deve fazer isso ao usar o operador condicional nulo ( ?. ) Nas suas exibições de navalhas).

Dito isto, a interpolação de cordas no Razor é um pouco problemática no momento no MVC6, então eu não ficaria surpreso se houvesse alguns problemas com ele. se eles serão ou não tratados é outra questão.





c#-6.0