Razor页面中的最佳实践:使用AJAX或Handler处理发布/获取请求

时间:2019-07-03 23:29:03

标签: javascript jquery ajax asp.net-mvc razor

通常来说,当您执行POST请求时,您想重新加载页面。虽然并非总是如此。使用GET方法检索数据时,您可以考虑使用AJAX。但是,我对Razor Pages和ASP.net核心完全陌生。有人告诉我我们应该始终加载页面。由于我们使用的是Razor页面,因此使用AJAX将任何内容提交给背后的代码都是不正确的。否则,使用剃刀页面的目的是什么。

我担心的是,它会留下不良的用户体验。如果要运行报告,请检索数据,并使用处理程序显示数据。我需要重新加载页面。如果我使用AJAX,则需要JSON,但不需要重新加载页面。如果使用处理程序,则可以获取一个模型,该模型可用于显示在重新加载的页面上,而不必将其转换为JSON。

Razor Pages的最佳做法是什么?好像您必须在每次回到2003年时都重新加载。

1 个答案:

答案 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);
}

希望这会有所帮助!