从HTTP POST获取值

时间:2013-02-19 11:14:08

标签: asp.net-mvc asp.net-mvc-3

我有一个遗留系统(用ColdFusion编写)发布到我的RESTful MVC应用程序,我试图访问已发布的参数。

我被建议在遗留系统中将内容类型标头设置为application/x-www-form-urlencoded,这应该意味着controllerContext.HttpContext.Request.Form.AllKeys包含已发布的参数,但事实并非如此。

其他Stack Overflow帖子建议阅读controllerContext.HttpContext.Request.InputStream,但我想知道是否有不同/更简单的方法。

1 个答案:

答案 0 :(得分:1)

仅将请求Content-Type标头设置为application/x-www-form-urlencoded可能不够。客户端还需要尊重此内容类型,这意味着POST请求的主体必须如下所示:

param1=value1&param2=value2&param3=value3&...

现在,您将能够使用Request.Form["param1"]检索单个值,或者只是使用视图模型并让控制器操作将此视图模型作为参数,这样您就不需要手动检索这些值来自请求的参数。

如果客户不遵守规范,您唯一的机会是阅读Request.InputStream并手动解析。