2016-11-07 2 views
1

リクエストは機能していますが、正しいルートには向かない。なぜか分からない。私のリクエストは間違ったルートに行きますか?

私はプロジェクトを開始したときに私の「200 ok」応答を受信して​​いますが、間違ったルートにあります。

私はルートhttp://localhost:4047/api/[controller]を求めていますが、代わりにhttp://localhost:4047/が働いています!いいえ、私はどこでこのルートを指定していますか?

ここにコントローラがあります。ここで

[EnableCors(origins: "*", headers: "*", methods: "*")] 
[Route("api/[controller]")] 
public class MenuController : ApiController 
{ 
    private IMenuRepo xMenuRepo; 
    public MenuController(IMenuRepo iopt) 
    { 
     xMenuRepo = iopt; 
    } 
    [HttpGet] 
    [Route("")] 
    public HttpResponseMessage GetOk() 
    { 
     return new HttpResponseMessage(HttpStatusCode.OK); 
    } 
} 
はここ

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}" 
    ); 
} 
は、私の知る限りは、Cのようなルートコンフィグ

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     name: "Default", 
     url: "api/{controller}", 
     defaults: new { controller = "Home" } 
    ); 
} 

あるWebApiConfigです教えて、api/Menu正しいルートにする必要があります。例では、コントローラのみのルートを指定している間

答えて

2

はい、あなたは、

//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-コアにある

出典:Attribute Routing in ASP.NET Web API 2

+0

そして私はもともとすべてのasp.netコアでこれをやっていました、切り替えなければならなかった。なぜそれがうまくいかないのでしょうか? –

+0

が動作しませんでした。 –

+0

エラーメッセージは何ですか – Nkosi

関連する問題