gpt4 book ai didi

jquery - Ajax 路由到 Controller 方法 MVC 4

转载 作者:行者123 更新时间:2023-12-01 05:51:00 25 4
gpt4 key购买 nike

需要从 ajax 接收帖子并将其放入我的 Controller 方法中。 Ajax 正在输出正确的值。

我创建了一个名为 ArticleScore 的 api Controller 。在 Controller 中,我想将 ajax 中的值传递到 SaveRating 方法中:

    [HttpPost]
private static int SaveRating(int articleID, int rate)

这是我的 Ajax:

         $.ajax({
type: "POST",
url: '@Url.Action("SaveRating","ArticleScore")',
data: JSON.stringify({ articleID: artID, rate: v }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert("success");
},
error: function () {
alert("I'm AJAX and I don't like to work");
}
});

我的老师告诉我使用路由。因此,在我的 global.asax 中,我输入了我读过的一篇文章中的以下内容:

    public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Rating", // Route name
"{controller}/{action}/{articleID/{rate}", // URL with parameters
new { controller = "ArticleScore", action = "SaveRating", articleID = "", rate = "" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}

但是它不起作用。我相信这是我的maproute 中的URL 参数。

最佳答案

我经常使用 ajax 调用,并且不必更改我的路由。我只使用默认的。在您的 Controller 上,我使用静态来进行从 View 中进行的调用(例如填充下拉列表)所以尝试将你的方法更改为

[HttpPost]
public ActionResult SaveRating(int articleID, int rate)

刚刚注意到您的 Controller 也是私有(private)的,这使得它们的 ajax 调用无法看到它。确保将其更改为公开

关于jquery - Ajax 路由到 Controller 方法 MVC 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com