我写了方法合同:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "TestEchoWithTemplate/{message}", BodyStyle = WebMessageBodyStyle.Bare)]
string TestEchoWithTemplate(string s);
和实施方法:
public string TestEchoWithTemplate(string s)
{
return "You said " + s;
}
当我浏览到网址时:
http://localhost:52587/VLSContentService.svc/rest/TestEchoWithTemplate/HelloWorld
我收到以下错误:
操作'TestEchoWithTemplate' 合同'IVLSContentService'有一个 需要参数的UriTemplate 名为'MESSAGE',但没有输入 带有该名称的参数 操作
以下产生相同的错误:
http://localhost:52587/VLSContentService.svc/rest/TestEchoWithTemplate/MESSAGE=HelloWorld HTTP://本地主机:52587 / VLSContentService.svc /休息/ TestEchoWithTemplate MESSAGE = HelloWorld的
我做错了什么?
答案 0 :(得分:7)
将模板定义为
"TestEchoWithTemplate/{s}"
由于您的方法有s
而不是message
。或者,将名称更改为界面中的message
:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "TestEchoWithTemplate/{message}", BodyStyle = WebMessageBodyStyle.Bare)]
string TestEchoWithTemplate(string message);