2017-02-07 6 views
0

URLのパス全体を自分のIActionResultの変数として返すasp.netコアのルートを持つことは可能ですか?例えばasp.netコアルーティング - スラッシュを含むURLパラメータを取得する

https://example.com/services

  1. パス変数が に "サービス" https://example.com/services/cleaning
  2. 等しくなければならない、パス変数は "サービス/クリーニング" に等しくなければなりません
  3. https://example.com/services/paintingの場合、のパスhttps://example.com/services/painting/interiorと「サービス/絵画」
  4. に等しくなるよう、パス変数は 「サービス/絵画/インテリア」

が、私は私のStartup.cs

にのみ、以下のルートを持っているに等しくなければなりません

これは、例えば1動作しますが、例2、3については無視され

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     "Redirect", 
     "{*path}", 
     new { controller = "Home", action = "Index", path = string.Empty } 
    ); 
}); 
、および4

は、どのように私は、SLAの数にかかわらず、ルートが仕事を得ることができます彼女は?


UPDATE:私の問題は、私はルート定義で私のコントローラを飾っていたことでした。私はそれを削除し、すべて正常に動作します。

+0

リクエストパスを探している場合は、おそらく['HttpContext.Request'](https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http/)にあります。 DefaultHttpContext.cs#L108)オブジェクトです。有望に見える['.Path'](https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http.Abstractions/HttpRequest.cs#L54)プロパティがあります。 –

+0

@DavidPine私が抱えている問題は、例2,3,4では空白のページがあるということです。私はそれが有効なルートだと感じるものを見つけることができないので、推測しています。 –

+0

これは正しい仮定です。 –

答えて

0

私の問題は、私のコントローラをルート定義で飾っていたことでした。私はそれを削除し、すべて正常に動作します。

関連する問題