2012-03-13 47 views
0

我只是試圖讓2010年VS解決實踐與jQuery使用REST服務。 我使用了模板WCF REST服務應用程序。它創建了一個類,我命名爲Services.cs 與我想調用一個方法:jQuery的呼叫休息自我託管端口號

[WebGet(UriTemplate = "")] 
    public List<SampleItem> GetCollection() 
    { 
     SampleItem item; 
     List<SampleItem> lst = new List<SampleItem>(); 
     for (int i = 0; i < 12; i++) 
     { 
      item = new SampleItem { Prom = 1960 + i, Name = string.Format("Name {0}", i.ToString()) }; 
      lst.Add(item); 
     } 
     return lst; 
    } 

的Global.asax.cs中的樣子: 無效的Application_Start(對象發件人,EventArgs的){ 的RegisterRoutes(); }

private void RegisterRoutes() 
    { 
     // Edit the base address of Service1 by replacing the "Service1" string below 
     RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(Service))); 
    } 

然後我做了一個新的asp.net空白網站,加入jQuery的文件等在了Default.htm頁。我喜歡叫GetCollection,所以我增加了以下的jQuery代碼。

$(function() { 
     var serviceUrl = ?????? 
     $.ajax({ 
      url: serviceUrl, 
      type: 'POST', 
      data: '{}', 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (colD) { 
       var col = colD.d; 
      } 

     }); 
    }); 

我把什麼URL肩?特別是我很難找出我的hostlocal上的端口。 我試過http://localhost:5187/KendoRestService/GetCollection,其中KendoRestService是REST項目的名稱,以及service.cs上的命名空間。任何幫助將不勝感激。

回答

0

好吧,我發現的端口號。檢查服務項目的屬性Alt + Enter,Web選項卡,在服務器下檢查將服務器設置應用於所有用戶,並使用Visual Studio Development Server自動分配端口。特定端口選項前有一個端口號。此端口號將由Visual Studio使用。

0

我相信你會想給[WebGet(UriTemplate = 「」)的值,即[WebGet(UriTemplate = 「getCollection」)

然後JavaScript網址是:

var serviceUrl = ServiceName/UriTemplate 

所以你的情況:

var serviceUrl = '/getCollection'; 
+0

不,它沒有工作。我把一個beacpoint放在getCollection上,但它永遠不會去那裏,也不會在ajax調用的成功部分。我的解決方案中有2個項目。 – 2012-03-13 20:44:37

+0

您是否嘗試過將參數typeof(Service)指向GetCollection()所在的位置? – 2012-03-13 21:08:08

+0

我應該在哪裏添加typeof(Service)?在我的阿賈克斯呼叫?謝謝 – 2012-03-13 21:35:00