Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的请求走错了路线?_C#_Asp.net Web Api2_Asp.net Web Api Routing - Fatal编程技术网

C# 为什么我的请求走错了路线?

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

我的请求是有效的,但它没有走上正确的路线。我不明白为什么

当我开始项目时,我收到了我的“200 ok”回复,但它走错了路线

我想要路线
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);
    }
}