これを簡単にするために、ASP.NET フォームにドロップダウン リストとボタンを用意しました。ドロップダウンリストには、DropDownList1_SelectedIndexChanged を呼び出す自動ポストバック関数があり、ページはどこかにリダイレクトされ (この例では www.google.com)、ボタンには Button1_Click1 に移動する onclick があり、ページは www.yahoo.com にリダイレクトされます。
問題: ボタンをクリックすると、ご想像のとおり Yahoo に移動します。ブラウザの [戻る] ボタンをクリックしてドロップダウン リストを選択すると、Google に移動しますが、これも正しいですが、[戻る] ボタンをクリックしてからボタンをクリックすると、Google にリダイレクトされます。え?なぜヤフーに行かないのですか?
これが私のコードです:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Testing Auto-Postback</title>
</head>
<body>
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server" onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true" ValidationGroup="form1">
<asp:ListItem>Please select</asp:ListItem>
<asp:ListItem>Go to Google</asp:ListItem>
</asp:DropDownList>
<hr />
<asp:Button ID="Button1" runat="server" Text="Go to Yahoo"
ValidationGroup="form2" onclick="Button1_Click1" />
</form>
</body>
</html>
コードビハインド:
using System;
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Redirect("http://www.google.com");
}
protected void Button1_Click1(object sender, EventArgs e)
{
Response.Redirect("http://www.yahoo.com");
}
}
誰かが私を助けることができれば、それは大歓迎です。