2014-03-27 51 views
0

我有我的asp.net webforms網站jquery-ui自動完成文本框工作正常。更好的方式來使用jQuery UI的自動完成與ASP.NET webforms

它以這種方式運行的問題是,asp.net正在生成一個巨大的數組,它必須在頁面顯示之前加載。

我的解決方案是提供一個Web服務中的數據,並指出我的自動完成框的web服務的URL,這樣我可以看看我的項目上即時之後,頁面加載

我知道這會起作用,但我並不真正熟悉asp.net提供的所有內容,所以我的問題更多的是「什麼是最好的方法去做這件事?

由於數據屬於應用程序本身,因爲我不需要從應用程序外部訪問數據,所以我想知道是否要製作web服務是正確的方法?例如,asp.net是否有這樣的web服務只能在同一個應用程序中訪問?

回答

1

如果您要做大量的Web服務,請按照其他答案中的說明使用WCF。有關WCF和ASMX的更多解釋,請參閱What is the difference between WCF and ASMX web services?

但是,如果你只需要一個一個的東西,嘗試做一個ASMX Web服務,這是更簡單,並具有較少的開銷。見HOW TO: Write a Simple Web Service by Using Visual C# .NET by Microsoft

在AutoCompleteServices.asmx.cs將這個:

[WebService] 
public class AutoCompleteServices 
{ 
    [WebMethod] 
    public void GetAutoCompleteResponses(string enteredText) 
    { 
     List<string> possibleResponses=GetPossibleResponses(enteredText); 
     string json=JsonConvert.SerializeObject(possibleResponses); 
     HttpContext.Current.Response.ContentType="application/json"; 
     HttpContext.Current.Response.Write(json); 
    } 
} 

創建AutoCompleteServices.asmx文件:

<%@ WebService Language="c#" Codebehind="AutoCompleteServices.asmx.cs" Class="AutoCompleteServices" %> 

注意,不像有些WebMethod的你可能已經看到了,我使用的是無效返回類型,我直接寫入響應。這是由於開箱即用的Json支持很差,並允許您自定義Json字符串(例如,也許您希望Json字符串正確縮進以便進行調試等)。