我正在使用自動完成使用Web服務。而在我的網絡服務中,我正在使用LDS。使用LINQ在WebService中自動完成
的問題是,當我嘗試這種代碼:
這是正在調用的Default.aspx web服務我的UI代碼:
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path ="WebService1.asmx" />
</Services>
</asp:ToolkitScriptManager>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server"
DelimiterCharacters="" Enabled="True" ServicePath ="WebService1.asmx" ServiceMethod="ReturnEntity" EnableCaching="true" TargetControlID="TextBox1" CompletionSetCount ="1">
</asp:AutoCompleteExtender>
這是我的WebService文件(webservice1.asmx )
[WebMethod]
public string[] ReturnEntity(string prefixText, int count)
{
List<string> responses = new List<string>();
for (int i = 0; i < count; i++)
responses.Add(prefixText + (char)(i + 65));
return responses.ToArray();
}
然後它工作。然而,我工作的這個代碼,它是不工作...
[WebMethod]
public string[] ReturnEntity(string prefixText)
{
using (DataClasses1DataContext search = new DataClasses1DataContext())
{
string[] fullText = (from n in search.Entities
where n.Name.StartsWith(prefixText)
select n.Name).ToArray();
return fullText;
}
}
當我試圖運行在瀏覽器本身的互聯網服務和傳遞一些參數,然後它顯示我這些:
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string>Starr</string>
<string>Sally Jeans</string>
<string>Steven Kline</string>
<string>Steven Goldberg</string>
</ArrayOfString>
這不會返回任何結果。我只想從我的表中顯示實體的列表,列名是'名稱'。
不能弄明白:(
您是否嘗試過使用自動完成之外調用該方法(使用DataContext)?我是猜測是你的查詢沒有返回任何結果。嘗試使用sql server profiler來確定你的調用發送到數據庫的查詢,然後看看如果你在sql server management studio中執行那個查詢會發生什麼。 – eoldre 2011-03-30 18:52:32
@eoldre:在瀏覽器中查看Web服務文件時,我可以以XML格式查看結果。所以我認爲它是從數據庫中提取的。 – 2011-03-30 18:55:27
@ DOT-NET對不起,結果如何?如果他們在瀏覽器中,那麼「不返回任何結果」是什麼意思? – 2011-03-30 18:56:44