C# web api:路由与控制器名称不同,可能吗?

C# web api:路由与控制器名称不同,可能吗?,c#,asp.net-web-api,C#,Asp.net Web Api,我有mineController.cs 现在在我的路线上,有可能吗 /api/mycontroller/myaction i、 e.我尝试获取不限于控制器名称的路由您可以使用System.Web.Http.RouteAttribute来修饰控制器操作并指定所需的任何路由。根据你想做什么,这可能是一个很好的方法 您可以使用System.Web.Http.RouteAttribute来修饰控制器操作并指定所需的任何路由。根据你想做什么,这可能是一个很好的方法 如果您使用的是Web Api 2,您可以

我有mineController.cs 现在在我的路线上,有可能吗 /api/mycontroller/myaction


i、 e.我尝试获取不限于控制器名称的路由

您可以使用
System.Web.Http.RouteAttribute
来修饰控制器操作并指定所需的任何路由。根据你想做什么,这可能是一个很好的方法

您可以使用
System.Web.Http.RouteAttribute
来修饰控制器操作并指定所需的任何路由。根据你想做什么,这可能是一个很好的方法

如果您使用的是Web Api 2,您可以使用:

[RoutePrefix("api/mine")]
public class mineController : ApiController
{
    [Route("method1")]
    [HttpGet]
    public IHttpActionResult Method1()
    {
        //Route would be api/mine/method1
    }

    [Route("method2")]
    [HttpGet]
    public IHttpActionResult Method2()
    {
        //Route would be api/mine/method2
    }
}

如果您使用的是Web Api 2,则可以使用:

[RoutePrefix("api/mine")]
public class mineController : ApiController
{
    [Route("method1")]
    [HttpGet]
    public IHttpActionResult Method1()
    {
        //Route would be api/mine/method1
    }

    [Route("method2")]
    [HttpGet]
    public IHttpActionResult Method2()
    {
        //Route would be api/mine/method2
    }
}

是,通过使用属性路由

步骤1:在
WebApiConfig.Register
方法中启用属性路由(默认情况下可能处于启用状态,我不会立即调用):

步骤2:不是必需的,但最好对整个控制器使用
RoutePrefix
属性:

[RoutePrefix("api/mycontroller")
public class mineController : ApiController
{
    ..
}
步骤3:在完成路由前缀的每个方法上使用
Route
属性:

[Route("myaction")]
[HttpGet] /* or other HttpVerb */
public IHttpActionResult SomeMethod()
{
   ...
}

[Route("myaction/{id}")]
[HttpGet] /* or other HttpVerb */
public IHttpActionResult SomeMethod(int id)
{
   ...
}

此处的更多信息:

是,通过使用属性路由

步骤1:在
WebApiConfig.Register
方法中启用属性路由(默认情况下可能处于启用状态,我不会立即调用):

步骤2:不是必需的,但最好对整个控制器使用
RoutePrefix
属性:

[RoutePrefix("api/mycontroller")
public class mineController : ApiController
{
    ..
}
步骤3:在完成路由前缀的每个方法上使用
Route
属性:

[Route("myaction")]
[HttpGet] /* or other HttpVerb */
public IHttpActionResult SomeMethod()
{
   ...
}

[Route("myaction/{id}")]
[HttpGet] /* or other HttpVerb */
public IHttpActionResult SomeMethod(int id)
{
   ...
}

此处的详细信息:

See.See.缺少配置设置<代码>配置.maphttpAttribute路由。谢谢缺少配置设置<代码>配置.maphttpAttribute路由。谢谢