2016-06-14 7 views
0

にルーティングを妨げます正常に動作します。 http://webPageAddress/foo/に移動すると、私のアクションが呼び出され、リストが返されます。デフォルトルートは、私はアクションメソッドとコントローラーを持っていると私は、ルーティング属性を設定した属性で定義されたパスがASP.MVC

ここでは、このルートをデフォルトにしたいと考えています。私は新しい属性を追加しました:

[HttpGet] 
[Route("~/")] 
[Route("")] 
public ActionResult List() 
{ 
    return View(); 
} 

結果は、デフォルトルート(http://webPageAddress/)動作しますが、もう動作(HTTP 404コード)しない古いもの(http://webPageAddress/foo/)です。

どのようにミックスして、両方を正しく設定できますか?

答えて

1

http://webPageAddress/foo/のルートがの前に登録されていることを確認する必要があります。http://webPageAddress/のルートはです。属性ルーティングでは、これを行う唯一の方法はOrderプロパティを使用して注文を設定することです。

[HttpGet] 
[Route("~/", Order = 2)] 
[Route("", Order = 1)] 
public ActionResult List() 
{ 
    return View(); 
} 

参考:Understanding Routing Precedence in ASP.NET MVC and Web API

関連する問題