0

かみそりを使用してMVC4アプリケーションから特定のフォーム値を送信する方法を知りたいです。

私は次のセナリオンを持っています。

2ドロップダウンリスト。最初のものは、タイプのセットをリストするモデルデータを使用してコントローラーに入力されます(最初にデフォルト値を自動選択します)。2番目はタイプオブジェクトによって入力されます(ポストバックが最初のドロップダウンリストからのものである場合は、最初のオブジェクトを自動選択します)。

私がやりたいのはこれです。最初のドロップダウンリストがポストバックを実行している場合、最初のリストの選択された値のみを投稿し、dropDownList2を0にします。

2番目のドロップダウンリストがポストバックを引き起こしている場合は、両方の値が必要です。

public ActionResult Index(int dropDownList1 = 0, int dropDownList2 = 0)
{
   // Get data for the dropdown lists
}

これはビューファイルです

<p>
@Html.ActionLink("Create New", "Create")
@using (Html.BeginForm("Index","EditItems",FormMethod.Get)){     
     <p>Γονείς τύπων: @Html.DropDownList("dropDownList1") </p> 
     <p>Τύποι σχολείων: @Html.DropDownList("dropDownList2")  </p> 
    } 
</p>

@section Scripts {
    <script type='text/javascript'\>
        $("#parentUnit").change(function () {
            $(this).parents('form').submit();
        });

        $('#childUnit').change(function () {
            $(this).parents('form').submit();
        });
    </script>
}

前もって感謝します

4

2 に答える 2

2

通常の投稿状況では、特定の値を送信することはできません。すべてのフォームフィールドが送信されます。これを防ぐ方法はありません。

ただし、できることは次の3つのうちの1つです。

1)javascriptを使用してさまざまなフィールドを変更し、送信したくないフィールドをクリアして、送信したいフィールドに正しい値を設定できます。

2)Ajaxを使用して投稿し、投稿するデータを制御できます。

3)いくつかの非表示のフォームを作成できます。ユーザーが[送信]をクリックすると、javascriptを使用して、送信する値だけをそれらのフィールドだけでフォームにコピーし、そのフォームをjavascriptで送信できます。

于 2013-03-26T14:38:54.403 に答える
0

<!DOCTYPE html>
<html>
<body>

<form action="demo_form.asp" method="get">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <button type="submit">Submit</button><br>
  <button type="submit" formaction="demo_admin.asp">Submit as admin</button>
</form>

<p><strong>Note:</strong> The formaction attribute of the button tag is not supported in Internet Explorer 9 and earlier versions.</p>

</body>
</html>

>>

于 2015-05-25T08:12:00.920 に答える