从C#Windows应用程序发布到ASP MVC 4站点

时间:2011-12-10 16:40:50

标签: c# .net asp.net-mvc

我正在编写一个与ASP MVC站点进行通信的Windows应用程序。

该站点有一个POST请求的控制器方法,它从我的Model中传递一个对象。

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

我发现POST数据只是与类属性匹配的键值对,因此Property1 = value1& Property2 = value2工作,但我对如何表示列表感到难过。

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

1 个答案:

答案 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服务更容易了。