点击按钮以获取首次更改按钮文字时,第二次点击时将重定向到其他页面-
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/