[英]viewstate is not loading/missing for default.aspx
我的默認頁面在執行回發時不包括視圖狀態,即視圖狀態丟失,當我在調試期間查看它們時,它沒有包含在 forms 或參數 collections 中。 這也會導致 IsPostBack 屬性顯示為 False,並且不會調用與回發關聯的事件。
我的第一個想法是某個地方的視圖狀態被關閉了,但我已經在頁面和所有控件上明確設置了它(頁面非常小,只有一個按鈕和一個列表鏈接)。 仍然沒有運氣。 有趣的是,這只發生在頁面的初始加載時,如果我點擊其中一個鏈接然后返回默認頁面,則存在視圖狀態。
為什么不會創建或生成視圖狀態? 我沒有收到任何驗證錯誤。 我注意到的第一個症狀是沒有觸發服務器事件,但這是有道理的,我看到視圖狀態不存在,我只是不知道為什么它會丟失。 我在頁面上確實有一個表單,並且控件在該表單中(當我從其他地方返回頁面時它們都可以工作,而不是在初始登陸時)。
更新:有人想要一些代碼,這是最低要求
<%@ Page Language="vb" AutoEventWireup="false" Inherits="Mysite._default" Codebehind="default.aspx.vb" %>
<!DOCTYPE HTML>
<html>
<head>
<title>Title</title>
<link href="Includes/Style.css" type="text/css" rel="stylesheet">
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:Button CssClass="Button" Id="cmdDone" Text="Done" runat="server" />
</form>
</body>
</html>
Partial Class _default
Inherits Page
Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack andalso request.HttpMethod = "Post" andalso ViewState("test") is nothing Then
Throw new Exception("No, viewstate")
End If
ViewState("test") = true
End Sub
End Class
問題是,當 asp.net 呈現<form id="Form1" method="post" runat="server">
時,生成的 html 是<form id="Form1" method="post" action="./">
而不是<form id="Form1" method="post" action="./Default.aspx">
。
這導致帖子進入索引而不是頁面本身,並且在頁面加載之前的某個時間被過濾掉。
解決方法很簡單,填寫action讓它直接跳轉到頁面,action="Default.aspx"。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.