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

最初に、checkBox を true または false に初期化できますが、その後、checkBox の値を変更および制御できませんか? 方法はわかりますか

4

1 に答える 1

0

サーバー側ですか、それともクライアント側ですか?サーバー側の場合は、セッションでカウンターを追跡する必要があります。リクエストが行われるたびにコントローラーが再作成されるため、インスタンス変数を使用することはできません。つまり、リクエストでは常にゼロになります。ユーザー間で状態を共有する場合を除いて、静的変数を使用することはできません。それでも、アプリケーションプールがリサイクルされるたびに再初期化されます。状態を永続化する場合は、ページ状態の一部としてそれを追跡するか(つまり、毎回フォームで現在の値をポストバックする)、セッション状態を使用する必要があります。

クライアント側を意味する場合、チェックボックスヘルパーは2つの入力を出力することに注意する必要があります。1つはチェックボックスで、もう1つは同じ名前でfalseの値を持つ非表示の値です。これは、フォームの投稿時に、チェックボックスにモデル/パラメーターの(必須の)ブール値にマップする値があることを確認するためです。JavaScriptを使用してクライアント側で更新する場合は、一貫した結果を得るために、非表示フィールドではなく、チェックボックスの値のみを変更するように注意する必要があります。

于 2012-12-09T15:42:41.270 に答える