[英]mvc3 - return bool from view to controller
背景
我在视图模型类中有一个布尔。 我有一个if语句,检查布尔是对还是错。 如果为false,则将值设置为true并调用视图。 在视图中,我有一个按钮,单击该按钮可以更新并再次调用该视图。 我的问题是,加载视图时,布尔值始终设置为false。 我不知道为什么会这样。 有没有办法阻止布尔值被更改?
尝试次数
我知道MVC是无状态的。
我已使用的视图是一个.aspx视图,其输入标签的“值”属性已被使用。 因此,我无法更新“提交”按钮的值。
<input type="submit" class="button" value="bvCalc" />
题
无论如何,我都希望保持布尔状态。 我不知道该怎么做,我不确定此时最好的做法是
值从视图到控制器的获取方式是通过ModelBinding
。 如果您不熟悉此方法的工作原理,则可以通过Google对其进行更好的了解。
举个简单的例子,假设您要传递布尔值的控制器中的action方法如下所示:
public ActionResult MyAction(MyViewModel model)
{
//.. do something here.
}
并且您的ViewModel看起来像这样:
public class MyViewModel
{
public bool MyBool { get; set; }
// ...more properties...
}
只要您的视图具有某种字段(例如,文本框,复选框,隐藏字段),其名称与属性名称(在本例中为“ MyBool”)完全匹配,并且其值将转换为属性(在本示例中)字符串“ True”可以映射到布尔值true
) ModelBinding
可以在您的控制器操作中填充model.MyBool
true
。
如果您使用内置的辅助方法,则无需担心在字段元素中获得正确的名称/值-MVC会为您完成此操作
例如@Html.HiddenFor(model => model.MyBool)
将呈现HTML类似
<input type="hidden" id="MyBool" name="MyBool" value="True" />
使用布尔? 在您的模型中。 没有它,布尔将始终默认为false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.