2013-12-09 2 views
2

이번에는 webmatrix로 웹 서비스를 만드는 법을 배웁니다. 나는이 링크에서 배울 수 있습니다 : http://www.microsoft.com/web/post/creating-a-webservice-with-webmatrix-and-consuming-it-with-a-windows-7-phone-application 하지만 저자가 소스 코드를 샘플로 작성하지 않았기 때문에 붙어 있습니다. 이 내 getproduct.cshtml 코드 :webmatrix로 웹 서비스 만들기

@{ 
    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'

좀 도와주세요, 내가 링크에서 해당 튜토리얼을 완료 할 수 있도록, 내 문제를 해결하는 방법에 대해 설명합니다.

var product = getproduct.GetProduct(price); 

은 다음과 같아야합니다 :

var product = getProduct.GetProduct(price); 

개체 이름은 대소 문자를 구분해야 는

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

편집 내용과 일치하도록 내 답변이 업데이트되었지만, 주된 문제는 철자와 대소 문자를 구분하여 개체와 메서드 이름을 신중하게 비교하는 것 같습니다. – Polynomial

답변

3

내가 볼 수있는 첫 번째 문제는 단지 대소 문자 구분 중 하나입니다 감사합니다 App_Code 폴더에있는 .cshtml 파일의 이름과 정확히 일치해야합니다.


당신은 내가 볼 다음에 문제가 방법은 복수 인의 이름으로, 그래서 경우는, 원래 정확하다고 보여 질문을 편집 한 것으로 보인다. 귀하의 메소드 서명은 다음과 같습니다

var product = getproduct.GetProduct(price); 

에 :

public static Product GetProducts(string price) 

그래서 변경할 필요

var product = getproduct.GetProducts(price); 

당신의 getproduct.cshtml 당신은에서 블록의 개방을 변경해야 @{ ~ @functions {.

나는이 튜토리얼을 단지 따르고 ​​있기 때문에 이것은 단지 제쳐두고 알지만, 그 코드는 나에게 SQL injection 해킹이 절대적으로 잘 보입니다.

+0

고마워 젠장, 미안 나는 질문을 편집하지만, 내가 먼저 알려 : D – yozawiratama

+0

Sory @ Polynomial 귀하의 솔루션은 여전히 ​​작동하지 않았다 :(, btw 나는 폴더 트리와 함께 내 질문을 업데이 트. 폴더 트리의 배열인가? 올바른지? – yozawiratama

+0

@yozawiratama 현재 사용중인 오류 메시지는 무엇입니까? 질문에서 현재 사용자 코드와 일치하지 않습니다. – Polynomial