現在のページをC#のままにするときに、次のページのURLを取得することはできますか?
現在のページで、次のページが読み込まれる前に次のページのURLをキャプチャしたいと思います。これをどこから始めればよいかわかりません...またはページのどのメソッドにこのロジックを配置しますか(page_load、buttonClickなど)
現在のページをC#のままにするときに、次のページのURLを取得することはできますか?
現在のページで、次のページが読み込まれる前に次のページのURLをキャプチャしたいと思います。これをどこから始めればよいかわかりません...またはページのどのメソッドにこのロジックを配置しますか(page_load、buttonClickなど)
「次のページのURLをキャプチャする」ことはできないと思いますが、現在のリクエストをすぐに取得できます。Global.asax
したがって、次のように使用します。
public class Global : System.Web.HttpApplication
{
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext context = base.Context;
HttpResponse response = context.Response;
HttpRequest request = context.Request;
var url = request.RawUrl;
// and many other properties ...
}
}
クエリ文字列を介してページングを行っていると仮定し、現在のページは次のとおりです。
url.com/default.aspx?page=1
次に、次のページの URL を取得すると、ページのクエリ文字列がインクリメントされるだけなので、次のようになります。
if (!String.IsNullOrempty(Request.QueryString["page"]) {
int nextPageNumber = int.Parse(Request.QueryString["page"] + 1;
string nextPageUrl = String.Format("url.com/default.aspx?page={0}, nextPageNumber);
}
理想的には、UriBuilderを使用してドメインを再構築し、String.Format メソッドのようにハード コーディングしないでください。簡潔にするためにこれを行いました。
CodeProject には、ページを閉じたり終了したりするときに変更を保存するためのプロジェクトがあり、役立つ場合があります。