mvc3 - 如何防止bool被重置为false

时间:2012-10-28 20:11:24

标签: c# asp.net-mvc-3

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

1 个答案:

答案 0 :(得分:3)

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

如果重新加载视图的按钮执行表单提交,则可以通过执行

来保留该值
@Html.HiddenFor(m => m.BoolProperty)
在你看来

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

var url = Url.Action("MyAction", "MyController", new { m.BoolProperty });