Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 复选框在ASP.net MVC中不保留其状态_Asp.net Mvc_Checkbox - Fatal编程技术网

Asp.net mvc 复选框在ASP.net MVC中不保留其状态

Asp.net mvc 复选框在ASP.net MVC中不保留其状态,asp.net-mvc,checkbox,Asp.net Mvc,Checkbox,我对使用Html.checkbox扩展方法创建的复选框有一个恼人的问题。显然,在回发的情况下(由于表单验证错误),复选框的状态不会保存。深入研究MVC代码本身(System.Web.MVC.Html.InputExtensions),我发现“checked”属性是通过调用htmlHelper.EvalBoolean(name)确定的 此方法查找ViewData本身的键(在name参数中指定)。问题是复选框的值实际上位于ModelState中。使命感 htmlHelper.GetModelStat

我对使用
Html.checkbox
扩展方法创建的复选框有一个恼人的问题。显然,在回发的情况下(由于表单验证错误),复选框的状态不会保存。深入研究MVC代码本身(
System.Web.MVC.Html.InputExtensions
),我发现“checked”属性是通过调用
htmlHelper.EvalBoolean(name)
确定的

此方法查找ViewData本身的键(在name参数中指定)。问题是复选框的值实际上位于ModelState中。使命感
htmlHelper.GetModelStateValue(名称、类型(bool))
将返回预期结果


这是复选框实现中的一个缺陷吗

请记住,MVC背后的理念是让web回到几年前的样子。如果不使用AJAX之类的工具,就不应该在页面上进行回发。因此,您用来维护其自身状态的大多数控件将不再这样做


您是否想过使用AJAX来解决这个问题?这样,您就可以拥有postbakc并维护控件的状态了?

此问题已发布,并将在MVC RTM中得到修复/支持。同时,这是一个很好的例子。

我在这里发布了另一篇文章:


客户端验证“很好”,但并不令人满意。最后,大多数站点都需要在服务器端进行验证