通过表单提交来调用wcf服务

时间:2011-09-27 22:00:27

标签: wcf forms

我有服务

[OperationContract]
void AddData(str ingdata)

实施

void AddData(string data)
{
 NameValueCollection dataToAdd= HttpUtility.ParseQueryString(data);
 //do seomething with data
}

和html表单

<form action='service.com/Service.svc/AddData' method="post" target="_blank">
    <label >FirstName</label>
    <input  type="text" size="30" name="FirstName">
    <label >LastName</label>
    <input  type="text" size="30" name="LastName">
     <input type="submit" value="Submit">
</form>

调用此服务时遇到大问题。总是提交后我被重定向到服务URL,但服务实现的断点永远不会触发:/ 我想在提交后从文本输入中收集所有数据并将其输入服务参数..

我有什么问题吗?

1 个答案:

答案 0 :(得分:2)

当从html表单调用wcf服务时,最好使用Stream类型作为服务方法

中的参数
[OperationContract]
void AddData(Stream data)

在流中,我从表单中的html控件发送了所有参数,我可以使用该代码:

NameValueCollection PostParameters = HttpUtility.ParseQueryString(new StreamReader(data).ReadToEnd());

这解决了我的问题