【问题标题】:Routing for Ajax post to a Controller method MVC 4将 Ajax 发布到控制器方法 MVC 4 的路由
【发布时间】:2014-03-11 16:21:20
【问题描述】:

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

我创建了一个名为 ArticleScore 的 api 控制器。在控制器中,我想通过 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 参数。

【问题讨论】:

    标签: jquery ajax asp.net-mvc-4 asp.net-mvc-routing


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 2021-04-30
      相关资源
      最近更新 更多