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

LaM*_*ars 1 c# jquery mvvm razor asp.net-mvc-4

我正在尝试使用 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));
        });
Run Code Online (Sandbox Code Playgroud)

这是Active.cshtml.cs方法

public JsonResult OnGetClients()
        {
        return new JsonResult("new result");
        }
Run Code Online (Sandbox Code Playgroud)

状态为 200 Ok,但响应中显示了整个网页。理想情况下,它应该在开发人员工具的“网络”选项卡中返回“新结果”。是不是我在页面中有 Active.cshtml 和 Active.cshtml.cs 造成了混乱?我该如何解决?谢谢

Shy*_*yju 7

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

这应该有效。

yourSiteBaseUrl/Index?handler=Clients&53
Run Code Online (Sandbox Code Playgroud)

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

public JsonResult OnGetClients(int id)
{
    return new JsonResult("new result:"+id);
}
Run Code Online (Sandbox Code Playgroud)

所以你的ajax代码应该是这样的

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