Asp.net mvc 使用自定义路由的ASP.NET Web API作为服务-不允许使用get 405方法
我已经创建了一个ASP.NET Web API项目,我不想使用“PUT”、“GET”等动词。。。。因此,我在WebApiConfig中创建了自己的路线Asp.net mvc 使用自定义路由的ASP.NET Web API作为服务-不允许使用get 405方法,asp.net-mvc,web-services,asp.net-web-api,Asp.net Mvc,Web Services,Asp.net Web Api,我已经创建了一个ASP.NET Web API项目,我不想使用“PUT”、“GET”等动词。。。。因此,我在WebApiConfig中创建了自己的路线 Public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}",
Public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
然后我创建了一个非常简单的ApiController
public class EWebApiController : ApiController
{
public HttpResponseMessage ByEntryFilter(long? id)
{
HttpResponseMessage response = Request.CreateResponse<string>(HttpStatusCode.OK, "Test string");
return response;
}
}
这里我总是得到405方法不允许的错误。通过WebClient和HttpClient调用
当我使用默认ApiRoute并使用GET时。。。动词一切都有效
这不是“WebDav”问题,它没有安装,在我的Web.Config中,我用“…”删除了它
当我在我的WebProject内的一个网站上使用本地jQuery AJAX调用时,我的ApiRoute也像一个符咒一样工作,没有405错误。如果您不使用Restful模式,请粘贴GET、PUT、DELETE、POST。。。您必须提供
属性
来告诉操作HTTP方法是什么:
[AcceptVerbs("GET", "HEAD")]
public HttpResponseMessage ByEntryFilter(long? id)
{
HttpResponseMessage response = Request.CreateResponse<string>(HttpStatusCode.OK, "Test string");
return response;
}
[AcceptVerbs(“GET”、“HEAD”)]
公共HttpResponseMessageByEntryFilter(长?id)
{
HttpResponseMessage response=Request.CreateResponse(HttpStatusCode.OK,“测试字符串”);
返回响应;
}
或
[HttpGet]
[ActionName(“ByEntryFilter”)]
公共HttpResponseMessageByEntryFilter(长?id)
{
HttpResponseMessage response=Request.CreateResponse(HttpStatusCode.OK,“测试字符串”);
返回响应;
}
更多信息请点击此处:
[AcceptVerbs("GET", "HEAD")]
public HttpResponseMessage ByEntryFilter(long? id)
{
HttpResponseMessage response = Request.CreateResponse<string>(HttpStatusCode.OK, "Test string");
return response;
}
[HttpGet]
[ActionName("ByEntryFilter")]
public HttpResponseMessage ByEntryFilter(long? id)
{
HttpResponseMessage response = Request.CreateResponse<string>(HttpStatusCode.OK, "Test string");
return response;
}