我正在编写一个与ASP MVC站点进行通信的Windows应用程序。
该站点有一个POST请求的控制器方法,它从我的Model中传递一个对象。
我可以在桌面应用程序中访问这些相同的类,并希望我能够创建相同类型的对象,然后创建HTTP POST请求,附加对象并将其发送到站点。
我发现POST数据只是与类属性匹配的键值对,因此Property1 = value1& Property2 = value2工作,但我对如何表示列表感到难过。
是否有一些简单的方法将对象序列化为HTTP请求,还是我必须为列表中的每个项目发出多个请求?
答案 0 :(得分:1)
您可以使用 WebClient 来实施此类行为
string url = "your POST action url here";
NameValueCollection formData = new NameValueCollection();
formData["name"] = "John";
// add more form field / values here
WebClient webClient = new WebClient();
byte[] responseBytes = webClient.UploadValues(url, "POST", formData);
string response = Encoding.UTF8.GetString(responseBytes);
然而,这不是好习惯。这种通信应该通过 Web服务来实现 - 如果您的应用程序设计得很好(例如,您有服务层/存储库),那么没有什么比将MVC前端并行暴露简单的Web服务更容易了。