最初にボタンのテキストを変更するためにボタンをクリックすると、2 回目のクリックで他のページにリダイレクトされます -
public partial class _Default : System.Web.UI.Page
{
int clickCount;
protected void btn_clicked(object sender, EventArgs e)
{
clickCount++;
if (clickCount == 1)
(sender as Button).Text = "go to landing page";
else
Response.Redirect("LandingPage.aspx");
}
}
明らかなように、ページがリロードされるたびに clickCount が再初期化され、else ブロックが実行されることはありません。clickCount の状態を維持するために、ビュー ステート、セッション ステート、アプリケーション ステート、非表示フィールド、または JS コードなどを使用できます。この特定のケースに最適なもの -> Ques 1.
MVC はステートレスであり、コントローラーにも同様のコードが記述されているため、ActionHandler またはコントローラーがインスタンス化されるたびに clickCount が再初期化されます。ASP.NET MVC -> Ques で同様の状況をどのように処理しますか。2