这次我学习如何使用webmatrix创建webservice。 我尝试从这个链接中学习: http://www.microsoft.com/web/post/creating-a-webservice-with-webmatrix-and-consuming-it-with-a-windows-7-phone-application 但我卡住了因为作者没有采样源代码。 这是我的getproduct.cshtml代码:
@{
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,代码只是过去if。
2. getproductGetProduct(价格)中的错误;
CS0117:'ASP.getproduct'不包含的定义 'GetProduct'
请帮助我,如何解决我的问题,以便我可以从该链接完成该教程。 谢谢
---UPDATE----
this is my folder
Test Webservice
|-jsonRequest.cshtml
|-App_Code
|-getproduct.cshtml
答案 0 :(得分:3)
我能看到的第一个问题只是区分大小写的一个:
var product = getproduct.GetProduct(price);
应该是:
var product = getProduct.GetProduct(price);
对象名称区分大小写,并且必须与.cshtml
文件夹中App_Code
文件的名称完全相同。
您似乎已经编辑了您的问题,以证明案例最初是正确的,因此我看到的下一个问题是您的方法名称为复数。您的方法签名是:
public static Product GetProducts(string price)
所以你需要改变:
var product = getproduct.GetProduct(price);
要:
var product = getproduct.GetProducts(price);
在getproduct.cshtml
中,您需要将块的开头从@{
更改为@functions {
。
我知道你也只是按照教程进行操作,所以这只是一个旁边,但是对于我来说,这个代码看起来绝对成熟。