2013-12-09 31 views
2

這次我學習如何使用webmatrix創建webservice。 我嘗試從這個鏈接學習: http://www.microsoft.com/web/post/creating-a-webservice-with-webmatrix-and-consuming-it-with-a-windows-7-phone-application 但我堅持因爲作者沒有示例源代碼。 這是我的getproduct.cshtml代碼:使用webmatrix創建Webservice

@{ 
    public class Product { 
     public string Name {get; set; } 
     public int Price {get; set; } 
    } 

    public static Product GetProducts(string price) { 
     var db = Database.Open("WebService"); 
     var selectQueryString = "SELECT Name, Score FROM Users WHERE Score >= " + @price; 
     var data = db.Query(selectQueryString); 
     Product product = new Product(); 
     foreach (var row in data) { 
      product.Name = @row.Name; 
      product.Price = @row.Score; 
     } 
     return product; 
    } 
} 

這是我的jsonRequest.cshtml代碼:

@{ 
    var price = Request.QueryString["price"]; 
     if (price == null || price == string.Empty) { 
      <p>Please enter a Price value</p> 
     } else { 
      var product = getproduct.GetProducts(price); 
      Json.Write(product, Response.Output); 
     } 
} 

很好,而且最後我跑http://localhost:55278/jsonRequest.cshtml,但有兩個錯誤對我來說,是: 1.該地址不存在QueryString,並且代碼剛過去,否則。 2. getproductGetProduct(price)中的錯誤;

CS0117:「ASP.getproduct」不包含 定義「GetProduct」

請幫幫我,怎麼解決我的問題,這樣我可以從該鏈接完成該教程。 謝謝

---UPDATE---- 
this is my folder 
Test Webservice 
|-jsonRequest.cshtml 
|-App_Code 
    |-getproduct.cshtml 
+1

我更新了我的答案以符合您的修改,但看起來您的主要問題是仔細比較您的對象和方法名稱,以便進行拼寫和區分大小寫。 – Polynomial

回答

3

我看到的第一個問題就是大小寫敏感的一個:

var product = getproduct.GetProduct(price); 

應該是:

var product = getProduct.GetProduct(price); 

對象名稱是區分大小寫的,必須與App_Code文件夾中的.cshtml文件的名稱完全相同。


你似乎已經編輯你的問題表明,該案件是正確的最初,因此接下來的問題,我看到的是在你的方法是複數名稱。你的方法簽名是:

public static Product GetProducts(string price) 

所以,你需要改變:

var product = getproduct.GetProduct(price); 

要:

var product = getproduct.GetProducts(price); 

在你getproduct.cshtml您需要更改塊從開幕@{@functions {

我知道你只是在跟着一個教程,所以這只是一個旁觀,但是對於SQL注入黑客來說,這段代碼看起來絕對成熟。

+0

感謝兄弟,對不起,我編輯的問題,但我沒有通知你,我先嚐試:D – yozawiratama

+0

Sory @Polynomial你的解決方案仍然沒有工作:(,順便說一句,我更新我的問題與文件夾樹。正確? – yozawiratama

+0

@yozawiratama你現在收到的錯誤信息是什麼?你的問題中的一個現在與你的代碼不符。 – Polynomial