起点:Razor Class Library (RCL) tutorial。我可以在Azure上发布它,并按预期访问Razor页面。
现在,我正在创建另一个.netstandard
的{{1}}库。它包含一个类:
MyCompany.ClassLibrary1
我在namespace MyCompany.ClassLibrary1
{
public class Class1
{
public string Message => "This is a test";
}
}
类中引用它,如下所示:
Page1Model
最后,为了检查一切是否正常,我在using Microsoft.AspNetCore.Mvc.RazorPages;
using MyCompany.ClassLibrary1;
namespace RazorClassLib.MyFeature.Pages
{
public class Page1Model : PageModel
{
public string Message;
public void OnGet()
{
Message = new Class1().Message;
}
}
}
中使用它:
Page1.cshtml
在我的计算机上启动时,一切正常。
但是,当尝试在Azure上发布Web应用程序时,Razor页面的预编译失败,并出现以下错误:
@page @model RazorClassLib.MyFeature.Pages.Page1Model <html> <body> OK from Razor page lib: @Model.Message </body> </html>
问题:
我已经创建了一个包含所有详细信息的小型GitHub存储库。
答案 0 :(得分:0)
解决方法只是将对正确的Razor SDK的引用添加到RCL项目。由于某种原因,它使用的是旧版本。
修复:添加对Nuget软件包Microsoft.NET.Sdk.Razor
版本2.1.1
的引用。