【发布时间】:2019-12-26 02:35:37
【问题描述】:
我已使用框架 4.7.1 通过在方法顶部添加属性将自定义路由添加到 WebAPI ASP.NET 应用程序:
public class ShapeFileAnalysisController : ApiController
{
[HttpGet]
[Route("GetDataValues")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public HttpResponseMessage GetDataValues()
{
string result = Models.ShapeFileReader.GetAdmin2();
HttpResponseMessage response = this.Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(result, Encoding.UTF8, "application/json");
return response;
}
}
但是当我添加 [Route("...")} 属性时,完整的 URL 会从 mysite.com/api/ShapeFileAnalysis 更改为 mysite.com/GetDataValues
webapiconfig.cs 是:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
config.EnableCors();
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
我应该怎么做才能仍然拥有 mysite.com/api/ShapeFileAnalysis/GetDataValues ?
【问题讨论】:
标签: c# asp.net asp.net-web-api routing