[英]webapi mediatypeformatter text/html
使用webapi默認值,我能夠發送和接收JSON數據。 我現在有一個方案,我的api控制器無法區分get操作
為了解決這個問題,我使用了ActionNameAttribute
[ActionName("ById")]
public Model Get(PoByIdQuery model)
{
return repo.Get(model);
}
[ActionName("ByPoNumber")]
public Model Get(PoByNumberQuery model)
{
return repo.Get(model);
}
這將網址更改為
現在的問題是,當我檢索該值時,它說沒有格式化程序可用於text / html類型。 如何配置mvc4 / webapi以將json格式化程序用於文本/ html請求? 或者,如何更改呼叫請求以使用json而不是html?
解決
首先,我需要添加路由。 默認情況下,webapi會忽略該操作。 所以我創建了一個包含動作的路線
routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{id}/{action}",
defaults: new { action = "ById", id = RouteParameter.Optional });
下一個問題是行動的論點。 根據這篇文章 。 復雜類型從正文中獲取,簡單類型從查詢字符串中獲取。 我可以使用[FromUri]
覆蓋此行為,並從查詢字符串中提取po編號。
有一個副作用,我現在可以解決。 我必須為{id}
提供一個參數。 所以我的網址看起來像這樣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.