2013-10-05 82 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表單中時。 –