-1

私は、登録アプリケーションと詳細アクションがあるサンプルアプリケーションで作業しています。 新しいチームを登録した後、詳細ビューにリダイレクトしたいと思います。クエリ文字列の代わりにルート値でリダイレクトするMVC

私のRegsiterのポストコードはこのようになります。

[HttpPost] 
public async Task<ActionResult> Register(TeamEditorVm teamRegisterVm) 
{ 
    if (ModelState.IsValid) 
    { 
     var teamDetailVm = await Managers.TeamManager.CreateAsync(teamRegisterVm); 
     return RedirectToAction("Details", new { id = teamDetailVm.Id }); 
    } 

    return View(teamRegisterVm); 
} 

代わりにクエリ文字列の

hxxps://test.com/team/detail/1 

のようなURLのルート値を使用するように RedirectToAction("Details", new { id = teamDetailVm.Id });を強制する方法はありますか?

hxxps://test.com/team/detail?id=1 
+3

デフォルトルーティングを使用している場合、 '../ team/details/1'が生成されます。現在のルート定義と 'Details()'メソッドの署名を表示 –

+0

そのアイデアをありがとう - 私はすべてのルートをキャッチし、デフォルトルートの直前に追加して、それがパターンを認識できないようにしています(コントローラ/アクション/ id)。私は最初にデフォルトルートを追加してから「すべてをキャッチ」ルートに変更し、作業を開始しました。ありがとう! –

答えて

0
RedirectToAction("Details", new { id = teamDetailVm.Id }); 

これは、詳細アクションにリダイレクトされますし、あなたのルーティングはデフォルトパラメータとしてIDが含まれている場合、それはあなたのクエリパラメータとして

hxxps://test.com/team/detail/1 

ないが表示されます。 MVC5でテストしたところ、私のために働いていました。経路を確認してください。

+0

私のルートが間違った順序で追加されていることがわかります。 –

関連する問題