Transferring Vs Redirecting Request – ASP.NET Server पर आने वाली Request को Transfer करने के लिए Transfer() नाम का जो Method इस Utility Class में Define किया गया है, वह Method, Redirect() Method द्वारा किसी Request को Redirect करने के समान नहीं है। यानी Transfer Method का प्रयोग Execution को एक Page से दूसरे Page पर Transfer करने के लिए किया जा सकता है। लेकिन ये Transfer, Web Browser को किसी दूसरे Page पर Redirect करने के समान नहीं होता है।
जब हम Redirect करते हैं, तो Web Server द्वारा Web Browser को एक Message Sent किया जाता है, जो उसे इस बात के लिए Instruction देता है कि वह अन्य Page के लिए Request Perform करे। इसलिए यदि Web Browser चाहे, तो वह Web Server से आने वाले Redirection से सम्बंधित Message को Ignore कर सकता है। इस स्थिति में Web Browser के पास दो Requests होती हैं:
- Web Browser द्वारा Send की गई Original Request और
- Web Server द्वारा Message के रूप में आने वाली Redirection Request
लेकिन जब हम Transfer() Method Use करते हैं, तब Web Server, Web Browser को एक Redirection URL के लिए फिर से Request करने के लिए Message Send नहीं करता, बल्कि Web Browser में उस एक URL के Data को ही Response के रूप में Send कर देता है।
अन्य शब्दों में कहें तो इस Method को Use करते समय] Web Browser Request तो किसी अलग Page के लिए Send करता है और उसे Response के रूप में प्राप्त होने वाला Page कोई दूसरा होता है। जबकि Web Browser के Address Bar में वही URL दिखाई देता है, जिसके लिए User ने Request Perform किया होता है।
इसे समझने के लिए हम निम्नानुसार एक Example देख सकते हैं, जिसमें Default.aspx, Chrome.aspx व IE.aspx नाम के तीन Web Page हैं। जहां Default.aspx.cs File में हमने निम्नानुसार Code लिखा है:
[code] File Name: Default.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace EventsAndContexts { public partial class Default : System.Web.UI.Page { protectedvoid Page_Load(object sender, EventArgs e) { switch (Request.Browser.Browser) { case"Chrome": Server.Transfer("IE.aspx"); break; case"IE": Response.Redirect("Chrome.aspx"); break; } } } } [/code]
जबकि Default.aspx में लिखा गया Code निम्नानुसार है:
[code] File Name: Default.aspx <%@Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="EventsAndContexts.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/x html"> <head runat="server"> <title></title> </head> <body> <form id="regForm" runat="server"> <div> <label for="txtName">Name: </label> <input type="text" id="txtName" runat="server"/> <button type="submit"value="Submit"name="submit">Submit</button> </div> </form> </body> </html> [/code]
इसी प्रकार से IE.aspx व Chrome.aspx में लिखे गए HTML Code निम्नानुसार हैं:
[code] File Name: Chrome.aspx <%@Page Language="C#" AutoEventWireup="true" CodeBehind="Chrome.aspx.cs" Inherits="EventsAndContexts.Chrome" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/x html"> <head runat="server"> <title></title> </head> <body> <form id=“form1" runat="server"> <div> <h1>Google Chrome Page</h1> </div> </form> </body> </html> [/code] [code] File Name: IE.aspx <%@Page Language="C#" AutoEventWireup="true" CodeBehind="IE.aspx.cs" Inherits="EventsAndContexts.IE" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/x html"> <head runat="server"> <title></title> </head> <body> <form id=“form1" runat="server"> <div> <h1>Internet Explorer Page.</h1> </div> </form> </body> </html> [/code]
अब यदि हम अपने Visual Studio में Default.aspx Webpage को Open करके Run (F5)करते हैं, तो हमें निम्न चित्रानुसार Resultant Webpage प्राप्त होता है:
हमें ये Webpage इसलिए प्राप्त होता है क्योंकि जब ASP.NET Web Server Default.aspx.cs Page को Execute करता है, तो निम्न Code Execute होता है:
[code] switch (Request.Browser.Browser) { case "Chrome": Server.Transfer("IE.aspx"); break; case "IE": Response.Redirect("Chrome.aspx"); break; } [/code]
चूंकि Perform होने वाली Request Google Chrome Web Browser से Perform हो रही है, उपरोक्त Code के अनुसार IE.aspx Webpage को Response के रूप में Web Browser में Send कर दिया जाता है।
परिणामस्वरूप हमें उपरोक्तानुसार Output प्राप्त होता है, जहां हम देख सकते हैं कि Address Bar में तो हमें Default.aspx Page ही दिखाई दे रहा है, लेकिन वास्तव में जो Content हमें दिखाई दे रहा है, वह Content हमने IE.aspx File में लिखा था, न कि Default.aspx File में और यही अन्तर होता है Server.Transfer() तथा Response.Redirect() Methods के बीच।
क्योंकि इसी Web Page को जब हम Internet Explorer पर देखते हैं, तो हमें निम्नानुसार Output Page प्राप्त होता है, जहां Web Browser के Address Bar में हमें Default.aspx नहीं बल्कि Chrome.aspx दिखाई दे रहा है क्योंकि हमने Redirect() Method Use करते हुए Page को Redirect किया है न किTransfer() Method को Use करते हुए Page को Transfer किया है:
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF