Ajax自动完成Web服务调用-服务方法,我可以正确地调用它吗?
时间:2020-03-05 18:47:53 来源:igfitidea点击:
好的,所以我在Web服务中的方法需要传递一个类型,该类型在AutoCompleteExtender的ServiceMethod属性中被调用,对于如何执行该操作我很困惑,因此我这样调用它:
ServiceMethod="DropDownLoad<<%=(typeof)subCategory%>>"
其中subCategory是如下页面属性:
protected SubCategory subCategory { get { var subCategory = NHibernateObjectHelper.LoadDataObject<SubCategory>(Convert.ToInt32(Request.QueryString["SCID"])); return subCategory; } }
解决方案
回答
我不认为可以在Web服务上调用泛型方法。
如果查看两种相同方法的服务描述,一种是通用方法,另一种则不是:
[WebMethod] public string[] GetSearchList(string prefixText, int count) { } [WebMethod] public string[] GetSearchList2<T>(string prefixText, int count) { }
它们是相同的。看来SOAP 1.x和HTTP POST都不允许这种类型的操作。
回答
我们可以使用AutoCompleteExtender的ContextKey参数来使用单个Web方法,该方法接受类型名称作为其上下文键。然后在web方法中,使用反射和该参数返回所需的string []。