在我看来,我有以下内容,将其显示为一个复选框:
<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,但之后 我无法更改和控制复选框中的值?你有什么想法吗
答案 0 :(得分:0)
您的意思是服务器端还是客户端?如果是服务器端,那么您需要在会话中跟踪计数器。您不能使用实例变量,因为每次发出请求时都会重新创建控制器,这意味着请求始终为零。除非要在用户之间共享状态,否则不能使用静态变量。即使这样,每次应用程序池回收时都会重新初始化。如果您希望状态是持久的,那么您需要将其作为页面状态的一部分进行跟踪(即,每次使用表单回发当前值)或使用会话状态。
如果您指的是客户端,您应该知道复选框帮助器将输出两个输入,一个是复选框,另一个是具有相同名称和值false的隐藏值。这是为了确保在表单的帖子上复选框有一个值映射到模型/参数中的a(必需)布尔值。使用JavaScript在客户端更新时,您应该注意只修改复选框的值,而不是隐藏字段,以获得一致的结果。