0

我在视图模型类中有一个布尔值。我有一个 if 语句检查布尔值是真还是假。如果为假,我将值设置为真并调用视图。在视图中,我有按钮,当点击更新并再次调用视图时。我的问题是加载视图时 bool 一直设置为 false。我不知道为什么会这样。有没有办法阻止布尔值被改变?

4

1 回答 1

4

MVC 是无状态的,因此模型实例不会在服务器调用之间持久化(除非您手动执行此操作,例如通过保存到数据库)。假设您的模型是您的操作方法的参数,那么在该模型中填充值的唯一方法是(1)该属性的默认值(在您的情况下为 false),(2)在请求或 (3) 如果它是提交表单上的输入。

如果重新加载视图的按钮执行表单提交,您可以通过执行来保留该值

@Html.HiddenFor(m => m.BoolProperty)

在你看来。如果按钮通过调用 url 刷新页面,则必须将 bool 属性作为路由值添加到 url:

var url = Url.Action("MyAction", "MyController", new { m.BoolProperty });
于 2012-10-28T20:52:27.143 回答