Asp.net MVC Razor view - CS1525: Invalid expression term '.'

六月ゝ 毕业季﹏ 提交于 2020-01-11 04:47:05

问题


I have two identical ASP.Net 4.6 MVC project, project 1 is using roslyn complier within the site which is working fine.

c:\windows\system32\inetsrv>C:\Websites1\bin\roslyn\csc.exe Microsoft (R) Visual C# Compiler version 1.2.0.60325

With the second project I'm getting the error below, it's using the complier from .Net framework.

c:\windows\system32\inetsrv> "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" Microsoft (R) Visual C# Compiler version 4.6.1590.0

Line 6: @if (!Model?.Item?.IsDerived(Templates.PageMetadata.ID) ?? true) Line 7: { Line 8: return;

c:\Website2\Views\metadata.cshtml(6,17): error CS1525: Invalid expression term '.' c:\Website2\Views\metadata.cshtml(6,18): error CS1003: Syntax error, ':' expected c:\Website2\Views\metadata.cshtml(6,23): error CS1525: Invalid expression term '.' c:\Website2\Views\metadata.cshtml(6,24): error CS1003: Syntax error, ':' expected c:\Website2\Views\metadata.cshtml(6,68): error CS1002: ; expected c:\Website2\Views\metadata.cshtml(6,68): error CS1525: Invalid expression term ')' c:\Website2\Views\metadata.cshtml(6,69): error CS1002: ; expected

I've used Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform on both project.

My question is why is the second project not using roslyn complier and is there a way to force it to use the roslyn complier within the site?

I've also tried Microsoft.Net.Compilers nuget package.


回答1:


Got it working now after adding the following to the web.config

<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>



回答2:


I just faced a similar issue and fixed it by doing as Huzzi suggested by adding the tags into the main web project's web.config and making sure that you have installed 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform' from nuget.




回答3:


Try changing the "Target framework" value in your application properties to a newer one.



来源:https://stackoverflow.com/questions/40235284/asp-net-mvc-razor-view-cs1525-invalid-expression-term

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!