【问题标题】:Html.CheckBoxFor somehow save state through two request [closed]Html.CheckBoxFor 通过两个请求以某种方式保存状态[关闭]
【发布时间】:2018-03-01 03:57:14
【问题描述】:

实际上我正在开发新的 asp.net mvc 应用程序,最喜欢 qustionare。但是在开发过程中我遇到了一个问题。我创建了根据传递的 questionId 逐一呈现问题的操作方法。因此,当我尝试呈现下一个问题时,我的 Html.CheckBoxFor 以某种方式记住了上一个问题的状态,并且与实际值无关地离开了相同的状态。 有没有人遇到过这样的错误? 谢谢

【问题讨论】:

  • 请提供代码,以便有人查看!

标签: c# asp.net-mvc checkbox


【解决方案1】:

在您的 Post 操作中,尝试清除模型,然后使用 ModelState.Clear() 再次将其传递给视图。

除非您清除模型的状态,否则从 [HTTPPost] 操作发回时,验证信息和模型绑定会被保留。我认为 MVC 中有一个假设,您只会回发以显示验证消息并允许更改。如果不是这种情况,请使用 ModelState.Clear() 并重置您的值。请参阅下面的链接...

Why you need ModelState.Clear

【讨论】:

  • 谢谢。这个对我有用。但为什么会发生呢?
  • 有很多信息要从 Post Action 中发回。特别是对于验证,但它也保留了模型绑定。我猜他们认为您只会重新发布以显示验证错误。所以必须调用 ModelState.Clear() 来显示模型中的新信息。您还可以清除模型的特定属性,但我没有相应的代码。如果对您有用,请标记为正确
  • 不知道为什么我正确回答了这个问题得到了 -1 :(
  • 请您标记为正确
  • 已经完成
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-23
  • 2015-01-03
  • 1970-01-01
相关资源
最近更新 更多