【问题标题】:Ajax Post not finding method in page modelAjax Post 在页面模型中找不到方法
【发布时间】:2021-08-01 11:27:18
【问题描述】:

我的页面模型中有以下方法,称为 Order

 public async Task<IActionResult> OnPostAddRecord(string recordId)
 {
     return new JsonResult("Hello");
 }

我的Ajax代码调用上述方法:

$('#RecordList').change(function () {

        var formData = {
            recordId: $("#RecordList").val(),
        };

          $.ajax({
            type: 'POST',
            data: formData,
            url: '@Url.Page("order", "addrecord")',
            success: function (result) {
                alert(result)
            },
            error: function (result) { }
          });


    });

然而,当它被触发时,它返回 StatusCode 400,然而,我在同一页面上还有另一个 Ajax 方法成功运行,不同之处在于一个是 GET 而这是一个 POST。

我真的看不出这里有什么问题。

【问题讨论】:

  • 在 OnPostAddRecord 操作上方添加 HttpPost 属性
  • @mehmetx 我得到的警告是 HttpPostAttribute 不能应用于 Razor 页面处理程序方法,必须使用 page 指令或使用约定声明 Razor 页面的路由
  • 您可以在OnPostAddRecord 上方添加[IgnoreAntiforgeryToken],或者您可以像@MikeBrind 一样添加AntiforgeryToken。

标签: c# ajax razor-pages


【解决方案1】:

【讨论】:

  • 该页面没有身份验证。
  • 请求验证与认证无关
猜你喜欢
  • 1970-01-01
  • 2019-05-12
  • 2013-10-04
  • 2021-08-05
  • 2021-07-07
  • 2012-11-12
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
相关资源
最近更新 更多