PRB: "xem tr?ng thái không h?p l?" thông báo l?i khi b?n s? d?ng Server.Transfer

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 316920 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TRI?U CH?NG

Khi b?n s? d?ng HttpServerUtility.Transfer ("Trang Tên", True), b?n nh?n đư?c thông báo l?i sau:
Xem tr?ng thái không h?p l? cho Trang này và có th? h?ng

NGUYÊN NHÂN

V?n đ? này x?y ra b?i v? các EnableViewStateMac thu?c tính c?a các <pages></pages> nguyên t? đư?c thi?t l?p đ? s? th?t Theo m?c đ?nh. Khi thu?c tính này đư?c thi?t l?p đ? s? th?tASP.NET ch?y m?t ki?m tra thư xác th?c (MAC) trên quan đi?m tr?ng thái trang khi trang đư?c đăng tr? l?i t? các khách hàng. Ki?m tra này xác đ?nh n?u bang xem trang đ?i l?n trên máy khách. Cho m?c đích b?o m?t, nó đư?c khuy?n khích là b?n gi? này thu?c tính thi?t l?p đ? s? th?t.

Khi b?n g?i các Server.Transfer phương pháp và đ?t tham s? th? hai s? th?t, b?n b?o v? các QueryString và các H?nh th?c các b? sưu t?p. M?t trong các trư?ng m?u là __VIEWSTATE ?n trư?ng m?u, gi? ch?c nhà nư?c xem cho trang. Xem tr?ng thái thư ki?m tra xác th?c th?t b?i v? vi?c xác th?c thư ki?m tra ch? ki?m tra m?i trang. Do đó, nhà nư?c xem t? trang mà các cu?c g?i Server.Transfer là không h?p l? trên trang đích.

Xem tr?ng thái là Trang scoped và h?p l? cho trang đó. Xem tr?ng thái không nên chuy?n qua các trang.

GI?I PHÁP

Đ? gi?i quy?t v?n đ? này, s? d?ng m?t trong nh?ng phương pháp sau đây.

Đ? phân gi?i 1

Các giá tr? chuy?n giao gi?a các trang đ? vư?t qua máy ch? c?a b?n ki?m soát giá tr? đ?n các trang khác. Đ? bi?t thêm thông tin, tham kh?o MSDN sau tài li?u:
Đi qua ki?m soát máy ch? các giá tr? gi?a các trang
http://msdn2.Microsoft.com/en-US/Library/6c3yckfw (vs.71) .aspx
Đi?u này đ?i h?i r?ng b?n t?o ra các tài s?n công c?ng cho m?i tài s?n ki?m soát b?n mu?n truy c?p t? trang đích.

N?u b?n có nhi?u đi?u khi?n, và n?u b?n mu?n truy c?p các thu?c tính này đi?u khi?n t? m?t trang khác, b?n c?ng có th? tuyên b? nh?ng đi?u khi?n như công c?ng các bi?n. Ví d?:

Page1.aspx
Public Class Page1
    Public WithEvents TextBox1 As System.Web.UI.WebControls.TextBox

    'Insert your code here.
End Class
				
Page2.aspx
            Dim sourcePage As Page1
            sourcePage = CType(Context.Handler, WebForm1)
            Response.Write(sourcePage.TextBox1.Text)
				

Đ? phân gi?i 2

Không vư?t qua các tham s? th? hai (đư?c sai Theo m?c đ?nh) khi b?n g?i Server.Transfer. Ví d?:
Server.Transfer("<page name>")
				
M? này không g?i các QueryString và các H?nh th?c các l?nh v?c đ?n trang đó đư?c g?i là. Khi không có d? li?u đư?c chuy?n giao, ASP.NET không ch?y ki?m tra thư xác th?c.

THÔNG TIN THÊM

Các bư?c đ? t?o l?i hành vi

  1. T?o m?t trang .aspx đ?t tên là WebForm1.aspx truy?n th?c hi?n đ?n m?t trang khác. Thêm m? sau đây đ? WebForm1.aspx:
    <%@ Page language="vb" AutoEventWireup="true" %>
    
    <html>  
      <body>	
        <form id="WebForm1" method="post" runat="server">
          <asp:TextBox id="txtName" runat="server">Your Name</asp:TextBox><br>
          <asp:Button id="Button1" runat="server" Text="Submit" OnClick="Button1_Click"></asp:Button>
        </form>	
      </body>
    </html>
    
    <script runat=server>
    Sub Button1_Click(sender As Object, e As System.EventArgs)
    	Server.Transfer("WebForm2.aspx",true)
    End Sub
    
    </script>
    					
  2. T?o m?t trang .aspx đ?t tên WebForm2.aspx, và sau đó thêm các m? sau đây:
    <%@ Page language="vb" AutoEventWireup="true" %>
    
    <html>
      <body>	
        <form id="WebForm2" method="post" runat="server">
          <asp:Label id="lblName" runat="server" >Web Form 2</asp:Label>
        </form>
    	
      </body>
    </html>
    
    <script runat=server>
    Sub Page_Load(sender As Object, e As EventArgs)
    
    Dim thisPage As System.Web.UI.Page
    Dim nameTextBox As TextBox
    
    	thisPage = CType(Context.Handler, System.Web.UI.Page)
    	nameTextBox =  CType(thisPage.FindControl("txtName"), System.Web.UI.Control)
    
    	lblName.Text = "Your name is '" & nameTextBox.Text & "'."	
    	
    End Sub
    
    </script>
    					
  3. M? WebForm1.aspx trong tr?nh duy?t c?a b?n, và sau đó nh?p vào G?i.

Thu?c tính

ID c?a bài: 316920 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft ASP.NET 1.0
T? khóa: 
kbprb kbstate kbwebforms kbmt KB316920 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:316920
Khước từ Nội dung trong Cơ sở Kiến thức Không còn được hỗ trợ
Bài vi?t này nói v? các s?n ph?m mà Microsoft không c?n h? tr? n?a. Do đó, bài vi?t này đư?c cung c?p "nguyên b?n" và s? không đư?c c?p nh?t.

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com