作者:手机用户2502929967 | 来源:互联网 | 2022-12-10 13:10
我建立了一个简单的Razor Pages网站,以显示几个数据库表的一些视图。
在index.cshtml.cs
我只是有:
public class IndexModel : PageModel
{
public IActionResult OnGet()
{
return RedirectToPage("./Registrations/Index");
}
}
在Registrations/index.cshtml.cs
我有:
public class IndexModel : PageModel
{
int pageSize = 30;
private readonly RegistrationAdmin.PostgresDbContext _context;
public IndexModel(RegistrationAdmin.PostgresDbContext context)
{
_cOntext= context;
}
public PaginatedList Registration { get; set; }
public async Task OnGetAsync(int pageIndex = 1)
{
IQueryable registratiOns= _context.Registrations
.Include(r => r.ContactPerson)
.Include(r => r.Badge)
.OrderByDescending(r => r.RegistrationId);
this.Registration = await PaginatedList.
CreateAsync(registrations.AsNoTracking(), pageIndex, pageSize);
}
}
从Visual Studio测试网站很好,从项目目录运行dotnet run
也可以。
因此,我通过以下方式部署了该网站:
dotnet publish -o ../Published/ -c release
然后dotnet MyWebsite.dll
从发布目录运行它。
当我连接到http:// localhost:5000时,出现一般错误。
查看控制台,这是抛出的异常:
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
An unhandled exception has occurred while executing the request.
System.InvalidOperationException: No page named './Registrations/Index' matches the supplied values.
at Microsoft.AspNetCore.Mvc.Infrastructure.RedirectToPageResultExecutor.ExecuteAsync(ActionContext context, RedirectToPageResult result)
at Microsoft.AspNetCore.Mvc.RedirectToPageResult.ExecuteResultAsync(ActionContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultAsync(IActionResult result)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResultFilterAsync[TFilter,TFilterAsync]()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultFilters()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(HttpContext context)
我无法理解已部署的版本出了什么问题。