路由AJAX帖子到控制器方法MVC 4



需要从Ajax接收帖子并将其扔进我的控制器方法。Ajax正在输出正确的值。

我创建了一个称为ArticlesCore的API Conrtoler。在控制器中,我想通过从ajax到方法进行储蓄的值:

    [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
        );
    }

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

我经常使用ajax调用,而不必更改路由。我只是使用默认值。在您的控制器上,我将静态用于从视图中拨打的通话(例如,下拉列表)因此,尝试将您的方法更改为

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

刚刚注意到您的控制器也是私人的,因此他们无法看到它们。确保将其更改为公共

相关内容

  • 没有找到相关文章

最新更新