[英]ASP.NET Webapi with parameter
我正在构建一个Webapi来从Db获取客户的余额。它很好地工作并且可以检索数据。但是问题出在参数部分。
例如。 在ASP.NET Web服务中,当我们请求服务时,它会提供一个页面,根据服务,我们可以在文本框中输入参数,然后
启动服务,我们获取数据。
我已启动并运行我的webapi,并且uri看起来像这样--- http:// localhost / api / accounts / balance / cs-001
AccountsController
public class AccountsController : ApiController
{
[HttpGet]
[ActionName("balance")]
public string Getbalance(string accountNumber)
{
var data = BusinessLayer.Api.AccountHolderApi.GetBalance(accountNumber);
return data;
}
}
而我的路线
RouteTable.Routes.MapHttpRoute("OfficeApi", "api/{controller}/{action}/{accountNumber}");
所以accountNumber是这里的参数。现在我的移动应用程序开发者朋友之一将要使用此api建议我在参数而不是url中移动帐号,就像我这种情况,我们将参数附加到url中以检索余额我想知道如何将帐号(param)从url移动到asp.net webapi中的参数。
我是webapi的新手,需要帮助。谢谢。
您只需要做的就是更改路由,因为帐号已经是该功能上的参数:
RouteTable.Routes.MapHttpRoute("OfficeApi", "api/{controller}/{action}");
然后,您将可以执行以下操作:
http:// localhost / api / accounts / balance?accountNumber = cs-001
@Avitus的答案是正确的。 如果您有兴趣,这里有些be惜。
如果有人请求此URL: http:// localhost / api / accounts / balance?accountNumber = cs-001
ASP.NET路由将根据您的路由配置确定控制器和操作。 一旦发现控制器和动作,它将尝试像这样绑定动作中的参数:
默认情况下,Web API使用以下规则来绑定参数:
- 如果参数是“简单”类型,则Web API会尝试从URI中获取值。 简单类型包括.NET基本类型(int,bool,double等),以及TimeSpan,DateTime,Guid,十进制和字符串,以及带有可从字符串转换的类型转换器的任何类型。 (稍后会更多有关类型转换器的信息。)
- 对于复杂类型,Web API尝试使用媒体类型格式化程序从消息正文中读取值。
这是全文 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.