通过方法属性的ASP.NET MVC路由GET与POST

问题描述:

在我的ASP.NET MVC应用程序中,我想使用这个ASP.NET MVC基于属性的路由映射器,首先宣布here通过方法属性的ASP.NET MVC路由GET与POST

我想用这个做一个RESTful API,我不明白如何区分Get和Post。

找到了GET,但是当我尝试POST时,路由没有映射,我得到了404。请指教。

见代码:

[HttpGet] 
[Url("organizations/{organizationId?}/alerts/", Order = 1)] 
public JsonResult List(Guid? organizationId) { 
    ... 
    return Json(data, JsonRequestBehavior.AllowGet); 
} 

[HttpPost] 
[Url("organizations/{organizationId?}/alerts/", Order = 2)] 
public JsonResult Send(Guid? organizationId, string message) { 
    ... 
    return Json(data, JsonRequestBehavior.AllowGet); 
} 
+0

您确定在测试POST路径时正在执行POST吗? – Restuta 2011-01-12 21:54:24

感谢@Thechoyce对我的帮助。只需将发送操作重命名为“列表”即可解决问题。他们需要两者相同才能超载。

[HttpGet] 
[Url("organizations/{organizationId?}/alerts/", Order = 1)] 
public JsonResult List(Guid? organizationId) { 
    ... 
    return Json(data, JsonRequestBehavior.AllowGet); 
} 

[HttpPost] 
[Url("organizations/{organizationId?}/alerts/", Order = 2)] 
public JsonResult List(Guid? organizationId, string message) { 
    ... 
    return Json(data, JsonRequestBehavior.AllowGet); 
}