【发布时间】:2017-05-29 17:35:32
【问题描述】:
我正在构建一个简单的 api 来从 db 中检索帐户的余额。如果我像这样将参数附加到 URI,它可以正常工作
http://localhost:8080/v1/api/accounts/balance?accountBalance=DS-00001
但是当我尝试在我的操作中使用 [FromBody] 从身体中获取它时
[HttpPost]
[ActionName("balance")]
public string GetBalance([FromBody]string accountNumber)
{
var data = BusinessLayer.Api.AccountHolderApi.GetBalance(accountNumber);
return data;
}
我在邮递员中收到此错误
"Message": "该资源不支持请求实体的媒体类型'multipart/form-data'。", "ExceptionMessage": "没有 MediaTypeFormatter 可用于从媒体类型为 'multipart/form-data' 的内容中读取类型为 'String' 的对象。", "ExceptionType": "System.Net.Http.UnsupportedMediaTypeException", "StackTrace": " at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable
1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable1 formatters, IFormatterLogger formatterLogger, CancellationToken cancelToken)"
我确实在这里发现了与此问题模糊相似但无法解决的问题。在https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api 中看到了 tuts 但仍然如此。就像这里所说的原始类型使用 [FromBody] 属性但仍然如此。
还有我的路线
config.Routes.MapHttpRoute("MobileBankingApi", "v1/api/{controller}/{action}");
在邮递员正文中>我输入的表单数据
Key = accountBalance Value = DS-00001
我想要 json 响应为
{"account_number":"CS-0000011","balace":7817.7}
我的邮递员输入可能有误,或者不是我没有为此进行研发,但帮助新手仍然是你们大师的祝福。
谢谢。
【问题讨论】:
标签: c# asp.net asp.net-web-api