C# 为什么我的请求走错了路线?
我的请求是有效的,但它没有走上正确的路线。我不明白为什么 当我开始项目时,我收到了我的“200 ok”回复,但它走错了路线 我想要路线C# 为什么我的请求走错了路线?,c#,asp.net-web-api2,asp.net-web-api-routing,C#,Asp.net Web Api2,Asp.net Web Api Routing,我的请求是有效的,但它没有走上正确的路线。我不明白为什么 当我开始项目时,我收到了我的“200 ok”回复,但它走错了路线 我想要路线http://localhost:4047/api/[控制器]但应改为http://localhost:4047/正在工作!不,我在哪里指定此路线 这是控制器 这是WebApiConfig 这是路由配置 据我所知,api/Menu应该是正确的路线。是的,您正在指定路线 //GET / [HttpGet] [Route("")] public HttpRespons
http://localhost:4047/api/[控制器]
但应改为http://localhost:4047/
正在工作!不,我在哪里指定此路线
这是控制器
这是WebApiConfig
这是路由配置
据我所知,
api/Menu
应该是正确的路线。是的,您正在指定路线
//GET /
[HttpGet]
[Route("")]
public HttpResponseMessage GetOk()
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
控制器需要路由前缀,而示例仅指定控制器路由
改为:
[EnableCors(origins: "*", headers: "*", methods: "*")]
[RoutePrefix("api/Menu")]
public class MenuController : ApiController {
private IMenuRepo xMenuRepo;
public MenuController(IMenuRepo iopt) {
xMenuRepo = iopt;
}
//GET api/Menu
[HttpGet]
[Route("")]
public HttpResponseMessage GetOk() {
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
OP[Route(“api/[controller]”)中的语法是针对asp.net-core的
来源:我最初是在asp.net内核中完成这一切的,因此不得不切换。那就是为什么它不起作用的原因了!我在默认路线上收到了OK消息。不在api/MenuDo上我需要指定每个方法上方的每个路由吗?RoutePrefix
是我需要更改的route
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "api/{controller}",
defaults: new { controller = "Home" }
);
}
//GET /
[HttpGet]
[Route("")]
public HttpResponseMessage GetOk()
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
[EnableCors(origins: "*", headers: "*", methods: "*")]
[RoutePrefix("api/Menu")]
public class MenuController : ApiController {
private IMenuRepo xMenuRepo;
public MenuController(IMenuRepo iopt) {
xMenuRepo = iopt;
}
//GET api/Menu
[HttpGet]
[Route("")]
public HttpResponseMessage GetOk() {
return new HttpResponseMessage(HttpStatusCode.OK);
}
}