- - PR -
ASP.NETでこのコンテキストでは応答が有効ではありませんのエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-07-08 22:07
ASP.NETで開発を始めたばかりです。
あるセッションの値が何もないならログイン画面に戻るという処理を共通化したいので クラスを作成しPage_Loadでcallしてるのですがブラウザで実行とすると response.redirect("default.aspx")の行で「このコンテキストでは応答が有効ではありません。」とエラーがでます。 クラスを作成するのも始めてなので何か必要なものが抜けてると思うのですがわかりません。 どなたか教えてください。 作成したクラス Public Class CommonClass Inherits System.Web.UI.Page Protected Friend Sub check_login() If Len(Session("userID")) = 0 And Len(Session("password")) = 0 Then Response.Redirect("default.aspx", True) End If End Sub End Class 呼び出しているaspx Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then Dim x As New tubakisample.CommonClass() Call x.check_login() Else End If End Sub |
|
投稿日時: 2003-07-09 21:55
Redirect したいのは 呼び出している側の aspx ファイルのレスポンスですよね。
「CommonClass」の Response はこれとはまったく別物なので、これを Redirect しても意味がありません。(言葉下手ですみません) Redirect の処理を共通化するのであれば、Response を関数の引数として渡すようにすればいいと思います。 Public Class CommonClass Protected Friend Sub check_login(HttpResponse res) If Len(Session("userID")) = 0 And Len(Session("password")) = 0 Then res.Redirect("default.aspx", True) End If End Sub End Class Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then Dim x As New tubakisample.CommonClass() Call x.check_login(Response) Else End If End Sub という感じではどうでしょう? |
|
投稿日時: 2003-07-10 09:08
あすかぜさん、ありがとうございます。Response処理が別物で動作しているのは
なんとなく判ってたのですが、それを共通化する処理をどうするのかが判らなかったので 勉強になりました。さっそくやってみます。 |
|
投稿日時: 2003-07-10 10:31
HttpContext.Current.Response.Redirect("default.aspx", True);
とすればわざわざ引数で渡さなくてもできると思いますよ。 |
|
投稿日時: 2003-07-10 11:10
ひでさん、ありがとうございます。
あずかぜさんのでやってみて成功しましたが、ひでさんのもやってみます。 勉強になりました。 |
1