VB.NETでResponse.Write()を使用して、相対URLにリダイレクトしたいと思います。私は次のコードを使用しています:
編集:
Response.Write(("account/msgbox.aspx?action=account&status=" & Convert.ToInt16(eAccountStatus).ToString))
Response.Write(("~/account/msgbox.aspx?action=account&status=" & Convert.ToInt16(eAccountStatus).ToString))
と
Response.Write(("/account/msgbox.aspx?action=account&status=" & Convert.ToInt16(eAccountStatus).ToString))
私の場合も同じように返します。
私のアプリケーションエラーイベントハンドラーは、形成されているURLが無効であることを報告します。
これが私が得ているものです:
http://localhost:14154/~/http:/localhost:14154/account/msgbox.aspx?action=account&status=6
これの代わりに
http:/localhost:14154/account/msgbox.aspx?action=account&status=6
Response.Write()の前のResponse.Clear()は何もしません。
プロジェクト全体がResponse.Write()を使用する前に、 Response.Redirect()を使用/切り替えることができず、Response.Redirect()の使用を選択すると、Response.Write呼び出しの後に書き込まれるすべてのコードが使用できなくなります。
どういうわけか追加されているベースURLをクリアする必要があります。どうすればこれを達成できるか教えてください。
ありがとうございます。
PS:このコードは以前は正常に機能していました。一部の開発者が変更を加えましたが、Response.Write()が上記のようにリダイレクトを引き起こしていません。
編集
スタックトレース:
System.Web.HttpException(0x80004005):ファイル'/~/account/msgbox.aspx'は存在しません。System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath)at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath、Boolean noBuild、Boolean allowCrossApp、Boolean allowBuildInPrecompile、Boolean throwIfNotFound、Boolean sureIsUpToDate)atSystem.Web.Compilation。 BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context、VirtualPath virtualPath、Boolean noBuild、Boolean allowCrossApp、Boolean allowBuildInPrecompile、Boolean throwIfNotFound、Boolean sureIsUpToDate)at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath、HttpContext context、Boolean allowCrossApp、 .Web.Compilation.BuildManager。