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中得到修复/支持。同时,这是一个很好的例子。我在这里发布了另一篇文章:
客户端验证“很好”,但并不令人满意。最后,大多数站点都需要在服务器端进行验证