2

からリダイレクトして、検索結果が商品リストページで ViewResultはなく、特定の商品の詳細を表示できるようにします。1

をに変更し、を使用すると言われている他ViewResultActionResultページRedirectToAction。しかし、私の問題は、コントローラーがサードパーティのコントロールを継承し、検索メソッドが同じサードパーティのコントロールメソッドであるをオーバーライドするように設定されていることViewResultです。

誰かが私に何ができるかについていくつかの提案があるかどうか、からリダイレクトする別の方法があるViewResultかどうか、またはサードパーティのコントロール検索メソッドのオーバーライドを処理する別の方法があるかどうか疑問に思っていますActionResult

4

2 に答える 2

2

別のビューを返すことができます(リダイレクトなし)

//in your action method
if( result.Count == 1 )
    return View( "Product", result[0] );

または、他のアクションメソッドを直接呼び出します(同じコントローラー内にある場合)

if( result.Count == 1 )
    return YourActionDetails( result[0].Id /* params */ );

または、クライアント側で自動リダイレクトを行う単純なビューを返すこともできます

// a "Redirect" view
@model Product
<html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <meta http-equiv="Refresh" content="0;url=@Url.Action("Details", Model.Id)" />
    </head>
    <body></body>
</html>
于 2012-08-10T15:56:53.640 に答える
0

アクションのリターンタイプを変更できない場合は、ルーティングを使用して、1のリクエストを別のアクションにルーティングできます。

別のルートを定義し、デフォルトのルートのRouteCollection 前に追加されていることを確認してください。

于 2012-08-10T15:41:37.927 に答える