2011-12-10 41 views
0

我在写一个Windows应用程序,它将与ASP MVC网站进行通信。从C#Windows应用程序发布到ASP MVC 4网站

该站点具有POST请求的控制器方法,该方法将来自我的模型的对象传递给它。

我有权访问我的桌面应用程序中的那些相同类,并希望能够创建相同类型的对象,然后创建HTTP POST请求,附加对象并将其发送到站点。

我发现POST数据只是匹配类的属性的键值对,所以Property1 = value1 & Property2 = value2工作,但是我很难理解如何表示列表。

是否有一些简单的方法将对象序列化到HTTP请求中,还是必须为列表中的每个项目发出多个请求?

回答

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前端并排展示更容易。

+0

我在做一个web服务。 Web服务返回在我的应用程序中反序列化为对象的JSON对象。我的问题是将对象序列化为POST数据,其中包含从应用程序发送到Web服务的列表。 –

+1

你在建造什么技术,你必须为序列化而苦恼?为什么不使用WCF并让它为你处理这种低级别的东西? – rouen