点击按钮以获取首次更改按钮文字时,第二次点击时将重定向到其他页面-

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都会重新初始化,否则块将永远不会执行。
为了维持clickCount状态,我可以使用视图状态,会话状态,应用程序状态,隐藏字段或JS代码等。在这种情况下,最好的方法是-> Ques 1。

由于MVC是无状态的,并且类似的代码也写在控制器中,因此每次实例化ActionHandler或控制器时,都会重新初始化clickCount。您如何在ASP.NET MVC-> Ques中处理类似情况。 2

最佳答案

创建一个模型以传递到带有属性的视图:

public int ClickCount{get;set;}


然后在视图中创建一个隐藏值

@Html.HiddenFor(f=>f.ClickCount)


在控制器上的发布事件期间,更新模型

public ActionResult(ViewModel model){
model.ClickCount++;
}

关于c# - Asp.net按钮单击事件和MVC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12413285/

10-16 09:03