需要从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)
刚刚注意到您的控制器也是私人的,因此他们无法看到它们。确保将其更改为公共