2011-06-28 24 views
1

私はこの中にMyLib.csという非コントローラファイルを持っています。特定の条件でページにリダイレクトするメソッドがあります。ASP.NET MVCの非コントローラからページにリダイレクトする方法は?

私は "RedirectToAction()"を使用しましたが、現在のコンテキストに存在しないというエラーが表示されました。

私は何を使うべきですか?

ありがとうございます!

+1

いくつかのコードを掲載し、問題の詳細を説明してください。 – Vedran

答えて

2

私はここでResponse.Redirectを使うことができると思います。 それを試してみると、それが働いた場合はお知らせこのコード

HttpContext.Current.Response.Redirect("YOUR_PAGE_Virtual_PATH"); 
    // example: http://www.mywebsite.com/home/list 

を考えてみましょう。

P.S:この回答が本当に助けになったら、答えとしてマークすることを忘れないでください。

0

MyLibがコントローラ内から呼び出されたとしますか?

MyLib.csで変数を設定し、MyLibが終了した後でコントローラからリダイレクトできますか?

更新:

あなたは絶対にこのクラスからリダイレクトするためにを持っていますか?これはMVCのパラダイムに逆らっているので、私はこれを言う。実際には、コントローラ内のすべてのルーティングを処理する必要があります。それに固執すれば、あなたのアプリケーションをより保守性の高いものにすることができます。本当にそれを十分に強調することはできません! :)

1

これは、MVCの教義の一部に違反しています。あなたは分離の概念を破っていますが、コントローラだけがあなたのライブラリではなく、ビューを返すべきです。 私はあなたに2つの提案を与えることができます。

  1. あなたのlibに列挙型を返すには

    、および を彼らは、コントローラは、ビューが表示されるはずです を見つけ出すだろう。

  2. ライブラリ からのすべてのパスがリダイレクトを引き起こすわけではない場合、例外をスローし、コントローラが適切なビューにリダイレクトするように処理します。

関連する問題