我有一个MVC应用程序,在为我的API控制器返回JSON时工作正常。我添加了一个应该返回剃刀视图的控制器,但是在尝试加载页面时我收到以下错误:
缺少一个或多个编译引用。可能的原因 包括一个缺失的' preserveCompilationContext'财产 ' buildOptions'在应用程序的project.json。
中类型或命名空间名称' DevTestViewModel'名称空间中不存在MyApp.Api.Models' (你错过了一个集会吗? 引用?)
我已将我的观点简化为:
@model List<MyApp.Api.Models.DevTestViewModel>
<h1>Hello World</h1>
我的模特课是:
namespace MyApp.Api.Models {
public class DevTestViewModel {
public int Id { get; set; }
public string Name { get; set; }
}
}
我尝试添加_ViewImports.cshtml:
@using MyApp.Api
我也遵循错误中的建议并在我的project.json中设置了preserveCompilationContext
,但它没有任何区别:
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
在本地调试时工作正常。只有在我发布到Azure后,我才会遇到问题。不知道我错过了什么。
答案 0 :(得分:1)
看起来Azure的部署存在问题。在Azure中重新创建Web应用程序,然后重新部署修复此问题。
答案 1 :(得分:0)
nuget安装Microsoft.AspNetCore版本1.1.1