在我的示例asp.net应用程序中,可以找到here,我在Page Init上创建动态控件。 然后,如果用户在控件中输入文本并单击该按钮,则应使用新值重新创建所有控件。
该页面使用用户手动输入的数据覆盖第一行中的填充值。
有关如何在不更改为html控件或MVC的情况下阻止此操作的任何想法?
答案 0 :(得分:0)
Page_Init事件中没有viewstate。将创建移动到Page_Load事件。
答案 1 :(得分:0)
我最终做了一个解决方法,让我自己保持状态,我添加一个querystring变量来告诉我的代码是第一次加载还是回发。我使用新变量重定向到同一页面,该变量强制清除控件。
另一种方法是在表单加载时检查IsPostBack并从我存储的对象值中再次替换ViewState赋值。
仍然无法理解为什么通过在页面和控件上禁用Viewstate,它仍会使用viewstate值填充我的动态控件。