ajax 使用处理程序请求 razor 页面

ajax request to razor page using handler

我正在尝试使用 ajax 调用从 Active.cshtml.cs 文件中获取数据。 这是 jquery 代码:

var turl = '/Active?handler=Clients/' + id;
    $.ajax({
        type: "GET",
        url: turl,
        dataType: "json",
        success: function (result) {
           alert(JSON.stringify(result));
        });

这里是Active.cshtml.cs方法

public JsonResult OnGetClients()
        {
        return new JsonResult("new result");
        }

状态为 200 Ok,但它显示了整个网页作为响应。理想情况下,它应该 return "new result" 在开发人员工具的网络选项卡中。是我在 Pages 中有 Active.cshtml 和 Active.cshtml.cs 造成混淆吗?我该如何解决? 谢谢

对于剃刀页面,您应该在查询字符串中为您的处理程序方法传递参数值。

这应该有效。

yourSiteBaseUrl/Index?handler=Clients&53

假设您的 OnGetClients 有一个 id 参数。

public JsonResult OnGetClients(int id)
{
    return new JsonResult("new result:"+id);
}

所以你的 ajax 代码应该看起来像这样

var id = 53;
var turl = '/Index?handler=Clients&id=' + id;
$.ajax({
    type: "GET",
    url: turl,
    success: function (result) {
        console.log(result);
    }
});