0

チェックボックスの値を取得したい...チェックボックスにはデータベースの値「true」または「false」が表示され、ユーザーは値を変更できます(気に入らない場合)値がfalseになるたびに取得します

意見:

   <%if ((Boolean)ViewData["Statistik3"])
   {%>                            
        <input type="checkbox" name="Statistik3" value="true" checked= "checked"/>
   <%}
    else
   { %>
       <input type="checkbox" name="Statistik3" value="false"/>  <%--</input>--%>
   <%} %>

コントローラー C#

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Formular(string button, string decision1, FormEntries entries )
{
    entries.Statistik3 ? "Yes" : "No"
}
4

3 に答える 3

1

サーバー側の Html ヘルパーを使用してチェックボックスをレンダリングしてみてください。ビューで行ったように入力要素をハードコーディングしないでください。これは恐ろしいスパゲッティ コードにつながります。Html.CheckBoxしたがって、表示したコード全体を、適切な入力要素のレンダリングを処理するヘルパーへの単純な呼び出しに置き換えます。

@Html.CheckBox("Statistik3")

投稿先のコントローラー アクションは、同じ名前のブール値の引数を取ることができます。

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Formular(bool statistik3, string button, string decision1, FormEntries entries)
{
    // you could use the statistik3 boolean argument to determine
    // whether the user checked or not the checkbox
}

私が行う次の改善は、完全に削除してViewData、このビューが必要とするすべての情報を含むビュー モデルを定義し、ヘルパーの厳密に型指定されたバージョンを使用することですHtml.CheckBoxFox

于 2012-12-10T13:04:01.053 に答える
0

チェックボックスはブール型のみです。value 属性は無視され、checked 属性がない場合のみです。データ モデルにフォーム バインドされていますか? 次のことを試してください。

<%if ((Boolean)ViewData["Statistik3"])
{%>                            
    <input type="checkbox" name="Statistik3"  id="Statistik3" checked="checked"/>
<%}
else
{ %>
   <input type="checkbox" name="Statistik3" id="Statistik3"/>  <%--</input>--%>
<%} %>

戻り時にブール値をテストします。

それが役立つことを願っています。

于 2012-12-10T13:07:04.503 に答える
0

チェックボックスがフォーム要素内にラップされていることを確認する必要があります。このようなもの

<% using(Html.BeginForm("Formular")){
  <%if ((Boolean)ViewData["Statistik3"])
   {%>                            
        <input type="checkbox" name="Statistik3" value="true" checked= "checked"/>
   <%}
    else
   { %>
       <input type="checkbox" name="Statistik3" value="false"/>  <%--</input>--%>
   <%} %>
<%} %>

上記のように、 @Html.CheckBox("Statistik3") を使用する必要があります

于 2012-12-10T16:11:32.680 に答える