كيف أعود إلى نفس الصفحة بالضبط بعد نشر النموذج؟
-
20-09-2019 - |
سؤال
وأنا نشر البيانات إلى صفحة تسمى process.aspx الذي يعالج بعض منطق الأعمال مع التعليمات البرمجية التالية:
<%@ Page Language="C#" %>
<%
MyData.process(Request);
Response.Redirect("")
%>
وهذه الصفحة سوف تكون الدعوة من مجموعة متنوعة من الصفحات. هل هناك طريقة لمعرفة من أي صفحة قدمت مستواي؟ كنت أفكر شيئا على غرار الكتابة:
<form id="frmSystem" method="post" action="process.aspx?page=<%= %>">
ولكن أنا لا أعرف ماذا أكتب في فترة ما بين <%= %>
للحصول على اسم الصفحة الحالية. يمكن لأي شخص مساعدة من فضلك؟
المحلول
ويمكنك التقاط URL صفحة الدعوة والاحتفاظ بها في Session
أو ViewState
لاستخدامها لاحقا.
وعلى سبيل المثال، في Page_Load
،
Session["PreviousPage"] = Request.Url.ToString();
وبعد ذلك في الحدث النهائي (ربما Savebutton_Click أو CloseButton_Click)، يمكنك القيام إعادة توجيه في أي من هذه الطرق:
Server.Transfer(Session["PreviousPage"].ToString(), false);
أو
Response.Redirect(Session["PreviousPage"].ToString(), false);
ويمكنك أيضا الحصول على URL للصفحة الدعوة بهذه الطريقة:
Request.ServerVariables("HTTP_REFERER")
نصائح أخرى
هل يمكن أن تمر فيه في طريق خاصية مثل ReturnUrl
تشبه الطريقة التي يعمل لافتة في الصفحة. هذا هو نوع من كيف تقومون به هناك.
هل يمكن أيضا محاولة لاستخدام HttpContext.Current.Request.UrlReferrer
لمعرفة من الذي يشار لك.
ويمكنك استخدام Request.UrlReferrer.OriginalString
للحصول على URI الصفحة اشارة.