ASP.NET MVC 3 中的 RestFul 操作方法

本文关键字:RestFul 操作方法 中的 NET MVC ASP | 更新日期: 2023-09-27 18:34:07

我无法在我的操作方法中检索我的 POST 请求正文。

我使用提琴手发起发布请求。

这是我正在使用的控制器。

public class EventController : Controller
{
    //
    // GET: /Event/
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    [ActionName("Event")]
    public String AddSurvey()
    {
        // ... logic to modify or create data item
        return "Ahmed" + Request["person"];
    }
}

这就是我的 global.asax 的配置方式

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(null, "Event",
             new { controller = "Event", action = "Event" });
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

当我从提琴手那里发出 POST 请求时,我在方法上的断点会调用。但是当我观察请求["人"]的值时,其中有空。

是全局.asax中定义的路由吗?请帮助

ASP.NET MVC 3 中的 RestFul 操作方法

尝试将Index操作重命名为Event[ActionName("Event")]表示您的 Get 操作称为 Event

当有人在常规 ASP.NET MVC 中寻找 RESTful 方法时,确保他了解 WebAPI 对我来说很重要,这完全符合这种需求

ASP.NET Web API 是一个框架,可以轻松构建 HTTP 覆盖广泛客户端的服务,包括浏览器和 移动设备。ASP.NET Web API 是构建的理想平台 .NET Framework 上的 RESTful 应用程序。

我不知道 , 如何 . 或为什么. 但这奏效了

  [HttpPost]
    [ActionName("Event")]
    public String AddSurvey()
    {
        // ... logic to modify or create data item
        string body;
        using (StreamReader reader = new StreamReader(Request.InputStream))
        {
            body = reader.ReadToEnd();
            reader.Close();
        }

        return body;
    }