Istnieje wiele sposobów, aby to osiągnąć. Mogę ci krótko wyjaśnić 4 rodzaje, których używamy w naszym codziennym cyklu życia.
Proszę przejść przez poniższe punkty.
1 ciąg zapytania.
FirstForm.aspx.cs
Response.Redirect("SecondForm.aspx?Parameter=" + TextBox1.Text);
SecondForm.aspx.cs
TextBox1.Text = Request.QueryString["Parameter"].ToString();
Jest to najbardziej niezawodny sposób, kiedy przechodzą całkowitą rodzaju wartości lub inne krótkie parametry. Większy postęp w tej metodzie, jeśli używasz znaków specjalnych w wartości podczas przekazywania ciągu zapytania, musisz zakodować wartość przed przekazaniem jej do następnej strony. Więc nasz kod fragment będzie coś takiego:
FirstForm.aspx.cs
Response.Redirect("SecondForm.aspx?Parameter=" + Server.UrlEncode(TextBox1.Text));
SecondForm.aspx.cs
TextBox1.Text = Server.UrlDecode(Request.QueryString["Parameter"].ToString());
URL Kodowanie
- Server.URLEncode
- HttpServerUtility.UrlDecode
2. Wartość przechodzącej przez obiekt kontekstowego
Przekazywanie wartości przez obiekt kontekście jest kolejną powszechnie stosowaną.
FirstForm.aspx.cs
TextBox1.Text = this.Context.Items["Parameter"].ToString();
SecondForm.aspx.cs
pamiętać, że jesteśmy przechodząc na inną stronę używając Server.Transfer zamiast response.redirect. Niektórzy z nas używają również obiektu Session do przekazywania wartości. W tej metodzie wartość jest przechowywana w obiekcie Session, a następnie jest pobierana z obiektu Session na Drugiej stronie.
3.Przesyłanie formularza na inną stronę zamiast na PostBack
Trzecia metoda przekazywania wartości przez umieszczenie strony w innym formularzu. Oto przykład, że:
FirstForm.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
buttonSubmit.Attributes.Add("onclick", "return PostPage();");
}
I tworzymy funkcji javascript, aby opublikować formularz.
SecondForm.aspx.cs
function PostPage()
{
document.Form1.action = "SecondForm.aspx";
document.Form1.method = "POST";
document.Form1.submit();
}
TextBox1.Text = Request.Form["TextBox1"].ToString();
Tu Piszesz formę na inną stronę, a nie siebie. Możesz uzyskać nieprawidłowy stan witryny lub błąd na drugiej stronie przy użyciu tej metody. Aby obsłużyć ten błąd jest umieszczenie EnableViewStateMac=false
4. Inną metodą jest poprzez dodanie właściwość PostBackURL kontroli krzyżowej widoku post Powrót
W ASP.NET 2.0, Microsoft rozwiązał ten problem poprzez dodanie własności PostBackURL z kontrola dla odesłania strony krzyżowej. Wdrożenie to kwestia ustawienia jednej właściwości kontroli i gotowe.
FirstForm.aspx.cs
<asp:Button id=buttonPassValue style=”Z-INDEX: 102″ runat=”server” Text=”Button” PostBackUrl=”~/SecondForm.aspx”></asp:Button>
SecondForm.aspx.cs
TextBox1.Text = Request.Form["TextBox1"].ToString();
W powyższym przykładzie mamy do przypisywania właściwości PostBackUrl przycisku możemy określić stronę który będzie publikował zamiast siebie. Na następnej stronie mamy dostęp do wszystkich elementów sterujących na poprzedniej stronie za pomocą obiektu Request.
Możesz również użyć klasy Poprzednia strona, aby uzyskać dostęp do elementów sterujących na poprzedniej stronie, zamiast korzystać z klasycznego obiektu żądania.
SecondForm.aspx
TextBox textBoxTemp = (TextBox) PreviousPage.FindControl(“TextBox1″);
TextBox1.Text = textBoxTemp.Text;
Jak można zauważyć, jest to również prosta i czysta realizacja przechodzącej wartość pomiędzy stronami.
referencyjny: MICROSOFT MSDN WEBSITE
SZCZĘŚLIWY KODOWANIE!
Czy próbowałeś pamięci podręcznej? – ssilas777
Nie jest źle używać 'sesji', ale są pewne czynniki w korzystaniu z sesji. Liczba użytkowników. Twoja przepustowość. Sever pojemność. Jeśli masz dobre z wyżej wymienionych, możesz użyć 'sesji'. –
@ ssilas777 Zwykle 'cache' jest takie samo dla wszystkich użytkowników. Więc w jego przypadku nie może używać pamięci podręcznej. –