gpt4 book ai didi

jquery - ASP.net Web API 如何确定要调用哪个函数?

转载 作者:行者123 更新时间:2023-12-01 04:07:53 26 4
gpt4 key购买 nike

我的 ASP.NET Web api 有两个函数:一个返回所有产品的列表,另一个根据条件返回一个列表。

public class ProductsController : ApiController
{
List<Product> lst = new List<Product>
{
new Product(){ Id = 1, Name = "a Soup", Category = "Groceries", Price = 1 },
new Product(){Id = 2, Name = "b Soup", Category = "stat", Price = 4 },
new Product(){ Id = 3, Name = "c Soup", Category = "Groceries", Price = 1 }
};

public List<Product> GetAllProducts()
{
return lst;
}

public List<Product> GetProducts(int k)
{
return lst.Where(p => p.Price == k).ToList();
}
}

config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

我正在使用 jQuery 的 GET 方法,如下所示:

 <script type="text/javascript">
function getProducts() {
$.getJSON("api/products/1",
function (data) {
debugger;
});
}
$(document).ready(getProducts);
</script>

此函数会调用第一个函数 GetAllProducts,即使我通过调用调用它

"api/products/1"

我的问题是它如何确定从客户端调用时调用哪个函数?

最佳答案

如果您使用的是最新版本的 Web API,您可以查看 Attribute Routing 。这将允许您使用相关模式来装饰方法。

 [Route("products/getAll")]
public List<Product> GetAllProducts()
{
return lst;
}

[Route("products/getByPrice/{price}")]
public List<Product> GetProducts(int price)
{
return lst.Where(p => p.Price == price).ToList();
}

以上只是一个示例,因此您可以选择适合您需求的内容。如果您使用的是旧版本,您可以获得AttributeRouting library here .

您还有一个 ActionPresedence,请参阅 my question here .

关于jquery - ASP.net Web API 如何确定要调用哪个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com