1

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

<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;
}

首先我可以将复选框初始化为真或假,但之后我无法更改和控制复选框中的值?你知道怎么做吗

4

1 回答 1

0

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

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

于 2012-12-09T15:42:41.270 回答