2016-07-03 20 views
0

アクションを定義せずにコントローラにリダイレクトするにはどうすればよいですか? (ルートの設定で定義され、それはデフォルトのアクションがデフォルトになります)ASP.NET MVC RedirectToActionデフォルトアクション

例ユーザに表示 return RedirectToAction("Index", "Error" new { messageId = errorMessageId});

URLは:http:mydomain/Error/Index/1001

好ましい return RedirectToAction(null, "Error" new { messageId = errorMessageId});

URL私は私たちに表示したいURLは手動で入力すると正常に動作し、ルートが機能していることが分かります。

MVCでRedirectxxxxを使用して行う方法はわかりません。ここで

+0

あなたが使用することができ、直接 'リダイレクト( "urlはここに行く")'あなたのURLを直接置くことができますMVCで "のhttp:MYDOMAIN /エラー/ 1001" –

+1

'私は手動でURLを入力すると、それ私のルートが働いていることを知っています。 " - 必ずしもそうではありません。着信URLと発信URLは2つの異なる方法であり、一致しないようにルーティングを設定することは可能です。ルート設定を投稿してください。サンプルURLは、期待どおりの別のルートに一致しているため、動作している可能性があります。 – NightOwl888

答えて

0
protected internal RedirectToAction(
    string actionName, 
    string controllerName, 
    object routeValues 
) 

は、アクション名を使用せずに、ここに、独自のルートを定義することができますRedirectToAction方法です。 Routing

1

あなたはRedirectToRouteを使用することができます。このチェックのルーティングについての詳細情報については

return RedirectToRoute(new { controller = "Error", messageId = errorMessageId }); 

あるいは、Url.RouteUrlと結合Redirectあります。

return Redirect(Url.RouteUrl(new { controller = "Error", messageId = errorMessageId }));