这篇文章是关于在ASP.NET Core Razor Pages中处理Ajax请求。Razor Pages是ASP.NET Core MVC的一项新功能,它使编写以页面为中心的场景更容易,更高效。
我已经在ASP.NET Core中发布了一篇关于jQuery Unobtrusive Ajax Helpers 的博客文章,你也可以在Razor Pages中使用它。但是大多数帮助程序都是针对POST / PUT请求的,如果你想以异步方式加载某些东西,比如级联下拉列表,那该怎么办呢。所以你可能需要使用jQuery ajax方法($.get
或$.getJson
)。OnGetCountries方法返回国家/地区列表。
$.getJSON("/Index/OnGetCountries", function(data){
//处理返回结果。
});
但是,如果您尝试通过标准路由访问Razor Page方法,则可能无法正常工作。
如果您在Razor页面中创建除默认方法OnGet
或OnPost
方法之外的新方法,则可以通过处理程序访问它。因此,您需要使用ajax请求中的处理程序上下文来工作。因此,如果您使用的是OnGetCountries方法,则需要发送这样的ajax请求。
$.getJSON("/Index?handler=Countries", function(data){
//注意 ?handler=Countries,这样写姿势才正确。
});
姿势对了,razor pages后置代码就可以处理您的ajax请求了。