2013-10-05 66 views
0

我无法检索我的操作方法中的POST请求主体。ASP.NET MVC中的RestFul操作方法3

我使用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 
     ); 



    } 

当我intiate从提琴手POST请求,我对方法调用断点。但是,当我看到Request [“person”]的值时,它就是null。

它是在global.asax中定义的路线吗?请帮助

回答

0

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

+0

对不起,我不抓住你。你想让我尝试将EventController的Index操作重命名为Event? –

+0

是的。看到我更新的答案。 –

+0

没有帮助。尝试它:( –

0

当有人会在常规ASP.NET MVC RESTful的方法,它的重要,我要确保他意识到WebAPI,这正好符合这一需求

的ASP.NET Web API是一个框架,可以很容易地建立HTTP 服务,达成广泛的客户,包括浏览器和 移动设备。 ASP.NET Web API是在.NET Framework上构建 REST式应用程序的理想平台。

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; 
    } 
+0

也许我知道为什么,它一定是如此,因为Request [“key”]只显然工作当键在HTML表单中时。 –