通常来说,当您执行POST请求时,您想重新加载页面。虽然并非总是如此。使用GET方法检索数据时,您可以考虑使用AJAX。但是,我对Razor Pages和ASP.net核心完全陌生。有人告诉我我们应该始终加载页面。由于我们使用的是Razor页面,因此使用AJAX将任何内容提交给背后的代码都是不正确的。否则,使用剃刀页面的目的是什么。
我担心的是,它会留下不良的用户体验。如果要运行报告,请检索数据,并使用处理程序显示数据。我需要重新加载页面。如果我使用AJAX,则需要JSON,但不需要重新加载页面。如果使用处理程序,则可以获取一个模型,该模型可用于显示在重新加载的页面上,而不必将其转换为JSON。
Razor Pages的最佳做法是什么?好像您必须在每次回到2003年时都重新加载。
答案 0 :(得分:1)
使用AJAX将代码提交到Razor Pages很好,我基于此构建了博客应用程序的管理面板,并获得了令人满意的结果https://github.com/FanrayMedia/Fanray
Razor Pages模型背后的类用作将JSON返回到您的AJAX调用的便捷端点。例如,我的博客的作曲者是Razor Page具有自动保存草稿功能,在view中,我有js code像
axios.post('/admin/compose?handler=save', this.payload, { headers: { 'XSRF-TOKEN': this.tok } }) ...
哪个发布到此model-behind class code
public async Task<JsonResult> OnPostSaveAsync([FromBody]PostVM post)
{
...
return new JsonResult(postVM);
}
希望这会有所帮助!