【问题标题】:ASP.NET MVC Routing Via Method Attributes GET vs. POST通过方法属性 GET 与 POST 进行 ASP.NET MVC 路由
【发布时间】:2011-06-08 03:25:57
【问题描述】:

在我的 ASP.NET MVC 应用程序中,我想使用这个基于 ASP.NET MVC 属性的路由映射器,首次发布 here

我正在尝试使用它来做一个 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);
 }

【问题讨论】:

  • 您确定在测试您的 POST 路由时正在执行 POST 吗?
  • 另一个“duh”问题:您的 GET 和 POST 方法具有不同的路由名称;你确定你的 POST 会发到 Send 而不是 List
  • 什么意思?他们没有不同的路线名称...

标签: c# asp.net-mvc post routing url-routing


【解决方案1】:

感谢@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);
 }

【讨论】:

    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2018-08-13
    • 2014-11-14
    • 2018-09-28
    相关资源
    最近更新 更多