2017-02-02 7 views
1

属性ルーティングを使用しようとしているMVCプロジェクトがありますが、有効なURLに対しては404を取得し続けます。ASP.Netの属性ルーティングがWeb APIなしで使用されるMVC 5がWeb APIなしで使用される

私はGoogleが属性は、ルーティングに関する一般的な問題は、私が何かを明らかに行方不明ですし、ほとんどの答えは次のようにルートの登録があることを確認しているように見えたかどうかを確認するためにあるものを見るために持っている:

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

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 

ラインでは、コントローラにルーティング属性を検索し、ルートを設定するコードです。

私は、属性がAPIControllerでも使用できると考えているので、Web APIの参照をいくつか見てきました。

しかし、次の記事では、Web APIについて言及していないため、Mvcだけで使用できることを示唆しているようです。

Attribute Routing in ASP.Net MVC 5

だから、依存性があり、あなたはルートがMVCでの作業属性を取得するには、Web APIを持っている必要がありますか?以下のストリップダウンコード使用

UPDATE

: '!世界の私がの有効な応答を取得することができます

[Route("hello")] 
public class SomeController : Controller 
{ 
    // GET: Some 
    public string Index() 
    { 
     return "world!"; 
    } 
} 

をurl 'localhost:58268/hello'の開始です。したがって、Web APIに依存せずにMvc 5で属性ルーティングを使用できるように見えます。

実際のコードの場合は、ルートを定義する際にエラーが発生しているはずです。

+0

コントローラコードとルーティング属性を記載してください。 –

+0

@PanagiotisKanavos実際のコントローラコードに私のルート属性を定義するのに間違いがあったようです。私が例として掲示するために剥ぎ取ったコントローラを作成したとき、私は結果を得ることができた。ですから、「Mvc Route AttributesにはWeb APIに依存しない」という質問に答えるには、答えとしてマークします。それか、私はこの質問をちょうど終えるべきです。とにかくありがとう。 –

答えて

0

はい、絶対にMVC属性ルーティングを使用できます。これは、WebAPI属性ルーティングとは別の機能です。どちらも同じ時間に導入されました(WebAPI 2とMVC 5が一緒にリリースされました)。

Web APIの属性ルーティングはMVCよりも柔軟性がありますが、より基本的なシナリオではうまくいくはずです。

MVCコアWeb APIとMVCがマージされ、属性ルーティングがさらに柔軟になり、以前のフレームワークのほとんどの制限が解決されていることに注意してください。

関連する問題