直接访问发布数据
我在我的控制器中有一个操作,它将从我的MVC网站外部接收HTTP POST请求。
所有这些POST请求将具有相同的参数,我需要能够parsing参数。
如何从行动中访问发布的数据?
这可能是一个非常简单的问题!
谢谢
来自HTTP请求的POST数据可以在Request.Form
获得。
string data = new System.IO.StreamReader(Request.InputStream).ReadToEnd();
使用
Request.InputStream
这将使您能够原始访问HTTP消息的主体,这将包含所有的POSTvariables。
http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspx
我正在尝试访问MVC控制器内部的POST数据。 InputStream已经被控制器parsing过了,所以我需要将InputStream的位置重置为0才能再次读取它。
此代码为我工作…
HttpContext.Current.Request.InputStream.Position = 0; var result = new System.IO.StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd();
Stream req = Request.InputStream; req.Seek(0, System.IO.SeekOrigin.Begin); string json = new StreamReader(req).ReadToEnd(); JavaScriptSerializer serializer = new JavaScriptSerializer(); dynamic items = serializer.Deserialize<object>(json); string id = items["id"]; string image = items["image"];
///您可以通过名称或索引访问参数
Web服务器不应该关心请求来自哪里。 如果你的客户端应用程序有一个称为用户名的input控件,它发布到你的应用程序,它将会像你从你自己的应用程序中发布一个名为username的input一样。
一个巨大的警告是,如果你已经实施了AntiForgeryValidation,这将导致一个很大的头痛,让外部表单发布。
- 如何有select地禁用ASP.Net MVC中的全局filter
- ASP.NET MVC – 根据Active Directoryvalidation用户,但要求input用户名和密码
- ASP.NET MVC和两个Web.config文件
- 在razor页面中检查login用户angular色
- 我如何添加一个项目到ASP.net MVC的SelectList
- 带有List <BaseClass>和编辑器模板的ViewModel
- 服务层应该为MVC应用程序返回视图模型吗?
- 如何在Microsoft.AspNet.Identity.EntityFramework.IdentityUser中更改id的types
- MVC控制器:从HTTP正文获取JSON对象?