[英]MVC 4 Web Api 404
我已經為此尋找了一些靈感,似乎我已經正確設置了它,並在其他問題中進行了所有更正。
當調用“ http:// localhost / en / api / cart / get ”時,我得到:
{"Message":"No HTTP resource was found that matches the request URI 'http://localhost/en/api/cart/get'.","MessageDetail":"No type was found that matches the controller named 'cart'."}
...當嘗試在EPiServer CMS / Commerce 7.5+解決方案中訪問ApiController設置時。
控制器看起來像這樣:
public class CartController : ApiController
{
[HttpGet]
public string Get()
{
return "OK";
}
}
在Global.asax.cs中,我有以下內容:
protected void Application_Start()
{
RegisterApis(GlobalConfiguration.Configuration);
RegisterAPis看起來像這樣:
public static void RegisterApis(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
"Api", // Route name
"api/{controller}/{action}/{id}", // URL with parameters
new { id = RouteParameter.Optional } // Parameter defaults
);
config.Routes.MapHttpRoute(
"LanguageAwareApi", // Route name
"{language}/api/{controller}/{action}/{id}", // URL with parameters
new { id = RouteParameter.Optional } // Parameter defaults
);
// We only support JSON
var appXmlType = GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
}
在同一台計算機上,我有運行IIS的EPiServer Commerce入門套件,並且用於注冊api控制器的代碼是相同的。 該站點運行良好,可以正確進行api調用,但是在我的站點上,我只能看到404。
因此,我可能缺少一些配置,但是我一生都無法弄清它是什么。 奇怪的是,在我的網站上,我正在運行EPiServer ServiceApi,該服務創建了/ episerverapi Web Api映射,並且工作正常。
有人知道為什么我的APiControllers無法正常工作嗎?
在Web API中,http動詞可幫助框架找到要執行的正確操作並返回結果。 例如,在使用get
方法的情況下,您只需通過get
http動詞來調用控制器:
http://localhost/en/api/cart
它將在Cart
控制器類中綁定Get
操作方法。 它對Post
, Put
, Delete
方法也有效。 保留asp.net Web API的默認路由
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
嘗試打電話給
http://localhost/en/api/cart
在WebAPI中,如果方法的名稱與HTTP謂詞匹配,則在該控制器上使用該謂詞時,它將調用該方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.