我几乎已经阅读了关于Ajax Post到控制器的所有问题。我试过我在这里看到的每一个解决方案。尽管如此,我的帖子仍然无效。因此,请不要认为它是重复的,至少在我得到答案之前。
public class BlogController : Controller
{
[HttpPost]
public ActionResult Test(BlogElement data)
{
return null;
}
public class BlogElement
{
public string HtmlContent { get; set; }
public string Date { get; set; }
}
和Ajax部分
var data_ = { HtmlContent: "someContent", Date: "someDate" }
$.ajax({
type: "POST",
url: "/Blog/Test",
dataType: "json",
data:data_
});
Ajax响应错误显示“未找到”。 这是我的路线配置。我实际上只使用属性路由。
routes.MapMvcAttributeRoutes();
此配置可能出现什么问题?
答案 0 :(得分:2)
显然,在MapMvcAttributeRoutes()
中拨打RoutesConfig
并不意味着也会注册默认的{controller}/{action}
路由。
添加它:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", Id = UrlParameter.Optional } );
或使用相应的[Route]
属性修饰您的操作:
[HttpPost]
[Route("Blog/Test")]
public ActionResult Test()
{
// ...
}