我无法在操作方法中检索我的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
);
}
当我从fiddler发出POST请求时,我的方法断点调用。但是,当我观察Request [" person"]的值时,其中为空。
是global.asax中定义的路由吗?请帮忙
答案 0 :(得分:0)
尝试将Index
操作重命名为Event
。 [ActionName("Event")]
表示您的Get操作被称为Event
。
答案 1 :(得分:0)
当有人在常规ASP.NET MVC中查找RESTful方法时,确保他知道 WebAPI非常重要,这非常适合这种需要。
ASP.NET Web API是一个可以轻松构建HTTP的框架 覆盖广泛客户的服务,包括浏览器和 移动设备。 ASP.NET Web API是一个理想的构建平台 .NET Framework上的RESTful应用程序。
答案 2 :(得分: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;
}