我的路由配置正确,并且我的方法具有修饰标记。我仍然得到“请求的资源不支持HTTP方法' get '”的信息?
[System.Web.Mvc.AcceptVerbs("GET", "POST")]
[System.Web.Mvc.HttpGet]
public string Auth(string username, string password)
{
// Décoder les paramètres reçue.
string decodedUsername = username.DecodeFromBase64();
string decodedPassword = password.DecodeFromBase64();
return "value";
}
以下是我的路线:
config.Routes.MapHttpRoute(
name: "AuthentificateRoute",
routeTemplate: "api/game/authentificate;{username};{password}",
defaults: new { controller = "Game",
action = "Auth",
username = RouteParameter.Optional,
password = RouteParameter.Optional },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "Home", id = RouteParameter.Optional }
);
发布于 2018-11-30 09:26:22
在我的例子中,路由签名与方法参数不同。我有id,但我接受documentId作为参数,这导致了问题。
[Route("Documents/{id}")] <--- caused the webapi error
[Route("Documents/{documentId}")] <-- solved
public Document Get(string documentId)
{
..
}
发布于 2018-07-30 17:52:29
只需使用此属性
[System.Web.Http.HttpGet]
不需要这行代码:
[System.Web.Http.AcceptVerbs("GET", "POST")]
发布于 2020-09-03 23:06:56
已通过在访问端点时使用http(s)
解决此问题。我访问的路由在http
上不可用。所以我会说验证路由可用的协议。
https://stackoverflow.com/questions/12765636
复制相似问题