我正在使用Visual Studio 2017中的视图组件和剃须刀页面来构建asp.net core 2.1应用程序。我有一个显示简单页面的视图组件(员工:summary.cshtml)。在此摘要页面上,有一个按钮,使用ajax将该剃须刀页面(Add Staff:_create.cshtml)加载到div中,如下图所示:
一切都会按预期显示...直到调试时我修改_create.cshtml页面的内容(html / javascript)(我只是在注释掉未使用的javascript函数-对功能没有影响)。当我刷新页面并尝试选择摘要页面上的按钮时,出现状态500错误(无法加载资源:服务器响应状态为500)。 视觉工作室输出窗口在刷新后显示不同的路由分辨率,如下所示:
第一次(一切正常)
Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求启动HTTP / 1.1 GET http://localhost:44332/Staff/_Create?caseId=4449
Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvoker:信息:路由与{page =“ / Staff / _Create”,action =“”,controller =“”}匹配。执行动作/员工/ _创建 Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:信息:授权成功。 Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvoker:Information:执行带有参数的处理程序方法OnGet(4449)-ModelState有效 Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvoker:信息:在56.2544毫秒内执行了操作/ Staff / _Create Microsoft.AspNetCore.Hosting.Internal.WebHost:Information:请求在205.0164ms中完成200 text / html; charset = utf-8
页面修改并刷新后:
Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求启动HTTP / 1.1 GET http://localhost:44332/Staff/_Create?caseId=4449
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息:路由与{action =“ _Create”,controller =“ Staff”,page =“”}匹配。执行动作LMS.Controllers.StaffController._Create(LMS) Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:信息:授权成功。 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息:执行带有参数(4449)的操作方法LMS.Controllers.StaffController._Create(LMS)-验证状态:有效 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息:执行的操作方法LMS.Controllers.StaffController._Create(LMS),在1.0258ms内返回结果Microsoft.AspNetCore.Mvc.ViewResult。 Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:信息:执行ViewResult,运行视图_Create。 Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:错误:找不到视图“ _Create”。搜索的位置:/Views/Staff/_Create.cshtml、/Views/Shared/_Create.cshtml、/Pages/Shared/_Create.cshtml
仅当_Create.cshtml页面的内容更改时,才会发生这种情况-无需更改即可刷新页面。
最终结果是我必须停止并重新启动调试会话才能看到任何内容更改。 有谁知道为什么路由分辨率会发生变化以及如何停止?