为什么我为此Razor Page Ajax呼叫获得404?

时间:2019-02-08 09:25:26

标签: http razor razor-pages

我正在使用以下客户端代码在Register页面中调用Ajax函数:

$.ajax({
    type: "GET",
    url: "/Register?handler=GeneratePassword",
    contentType: "application/json",
    dataType: "json",
    success: function (response) {
        $("#genPwd").val(response.Password);
    },
    failure: function (response) {
        alert(response);
    }
});

页面模型中的操作如下:

public JsonResult OnGetGeneratePassword()
{
    var pwd = _passwordService.GeneratePassword(_passwordOptions);
    return new JsonResult(new { Ok = true, Password = pwd });
}

根据我所读到的有关Razor Page Ajax调用的信息,这应该可以工作,那么为什么要使用404?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用IActionResult而不是JsonResult

public IActionResult OnGetGeneratePassword()
{
    var pwd = _passwordService.GeneratePassword(_passwordOptions);
    return new JsonResult(new { Ok = true, Password = pwd });
}

您还可以尝试的另一种方法是删除ajax网址开头的/,如下所示:

$.ajax({
    type: "GET",
    url: "Register?handler=GeneratePassword",