我已经创建了一个OData端点(使用实体框架,WCF数据服务)
并添加了一个自定义测试WebGet测试方法,如下所示:
[WebGet(UriTemplate = "{text}")]
public IQueryable<string> SplitString(string text)
{
if (text == null) throw new DataServiceException("text not specified");
var result = (from s in text.Split('-') orderby s select s);
return result.AsQueryable();
}
和配置行:
config.SetServiceOperationAccessRule("SplitString", ServiceOperationRights.All);
但是,无论我如何指定url,我都无法填写文本参数。 (它总是为空)。
所以:
http://localhost/myservice.svc/SplitString/testtext
不起作用(因为param为null,它会抛出我的异常)。 应该使用什么样的正确url格式(或UriTemplate)来使参数起作用?
我发现odata和WebGet的唯一例子只有一个没有任何参数的示例方法。
答案 0 :(得分:7)
正确的方法是: /myservice.svc/SplitString?testtext='mystringvalue'
有关详细信息,请参阅此页面: http://msdn.microsoft.com/en-us/library/cc668788.aspx