设置复选框Asp.net MVC,Html.CheckBox的值

时间:2012-12-09 15:33:12

标签: asp.net-mvc

在我看来,我有以下内容,将其显示为一个复选框:

<td style="padding:3px"><%= Html.CheckBox("Statistik3", (Boolean)ViewData["Statistik3"], new { @tabindex = "10" })%>     </td>

控制器:

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
        public ActionResult FormularStatistikKennzeichen(string button, string decision1, FormEntries entries)
        {

if (i > 0)
            {
                ViewData["Statistik3"] = true;
            }
            if (i == 0)
            {
                ViewData["Statistik3"] = false;
            }
            i = i + 1;
}

在第一个我可以将checkBox初始化为true或false,但之后 我无法更改和控制复选框中的值?你有什么想法吗

1 个答案:

答案 0 :(得分:0)

您的意思是服务器端还是客户端?如果是服务器端,那么您需要在会话中跟踪计数器。您不能使用实例变量,因为每次发出请求时都会重新创建控制器,这意味着请求始终为零。除非要在用户之间共享状态,否则不能使用静态变量。即使这样,每次应用程序池回收时都会重新初始化。如果您希望状态是持久的,那么您需要将其作为页面状态的一部分进行跟踪(即,每次使用表单回发当前值)或使用会话状态。

如果您指的是客户端,您应该知道复选框帮助器将输出两个输入,一个是复选框,另一个是具有相同名称和值false的隐藏值。这是为了确保在表单的帖子上复选框有一个值映射到模型/参数中的a(必需)布尔值。使用JavaScript在客户端更新时,您应该注意只修改复选框的值,而不是隐藏字段,以获得一致的结果。