0

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

我使用 fiddler 发起一个发布请求。

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

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 请求时,我在方法上的断点调用。但是,当我查看 Request["person"] 的值时,其中有 null 。

是 global.asax 中定义的路线吗?请帮忙

4

3 回答 3

0

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

于 2013-10-05T20:01:06.267 回答
0

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

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

于 2013-10-05T20:37:39.510 回答
0

我不知道,如何。或者为什么。但这有效

  [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;
    }
于 2013-10-05T20:37:49.497 回答