【问题标题】:Razor Pages AJAX url id parameterRazor Pages AJAX url id 参数
【发布时间】:2018-08-04 23:44:14
【问题描述】:

我正在尝试找到将 id 参数传递给 AJAX url 的可靠方法。

我有一个需要 id 参数的 post 方法:

 public ActionResult OnPostSend(int id)
        {
        //Some stuff which requires id parameter from page
        }

我也有 AJAX 代码:

$.ajax({
            type: "POST",
            url: "/Exercises/Details?handler=Send&id="+@Model.Exercise.ID,
            //other AJAX
        });

请注意url参数:

url: "/Exercises/Details?handler=Send&id="+@Model.Exercise.ID

这是我发现如何将 id 参数传递给 OnPostSend 方法的唯一方法。它运作良好。然而,这种方法似乎不可靠,因为我可能会更改我的路由以采用一些额外的参数,这会使这段代码出错。

也许有人知道如何将 id 参数传递给 AJAX url 的更好方法。我花了很多时间试图弄清楚,但我发现上面提到的最好的方法似乎不是解决问题的好方法。

将非常感谢您的帮助!

【问题讨论】:

  • 查看Url.Page 的助手URL generation for Pages
  • 感谢您的回复!如果您提供一些示例如何使用此方法生成具有特定 ID 和处理程序的 URL,我将非常高兴。我开始 google 并尝试应用此方法,但找不到合适的重载来满足这些需求。
  • 过载自我解释需要哪些参数@Url.Page(pageName: "Details", pageHandler: "Send", values: new { id = Model.Exercise.ID }。再加上添加更多参数是一个突破性的变化。助手无法自动知道要为新参数输入什么值。如果您更新处理程序上的参数,那么您需要在页面中进行相同的更新。
  • 非常感谢您的回答!现在我清楚了。
  • 我的工作就像您尝试的那样! url: "/Books/Index?handler=DeleteBook&bookId=" + bookId 。我通过函数参数将 bookId 传递到这个 ajax url。它的工作完全像这样。 [最新更新Core 2.2]

标签: asp.net-ajax razor-pages


【解决方案1】:

查看Url.Page 的助手URL generation for Pages

UrlHelper 扩展过载自我解释需要哪些参数

url:"@Url.Page(pageName: "Details", pageHandler: "Send", values: new { id = Model.Exercise.ID }" 

但添加更多参数是一项重大更改。

助手无法自动知道要为新参数设置什么值。

如果您更新处理程序上的参数,那么您需要在页面中进行相同的更新。

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 2018-03-30
    • 1970-01-01
    • 2018-06-29
    • 2018-07-07
    • 2014-02-26
    • 2018-11-08
    • 2020-03-23
    • 2020-12-24
    相关资源
    最近更新 更多