1

ViewModel に密接にバインドされているビューで @Ajax.Beginform を使用しています。

フォーム内に @Html.ListBoxFor があります。jQueryを使ってリストボックスに項目を追加したり削除したりしています。今私が達成したいのは、送信ボタンを押すと、選択されているものに関係なく、リストボックスに存在する完全なデータを送信する必要があるということです。現在、リストボックス内のすべてのアイテムを選択して送信ボタンを押すと、リストがコントローラーに送信されます。しかし、私はそれをしたくありません。これを達成する方法について何か考えはありますか?

フォームパラメータとして送信できますか。

@using (Ajax.BeginForm("SaveTextComponent", "LoanFilterEditor", new{ param1 = Model.listBoxItem},  new AjaxOptions { HttpMethod = "POST", OnSuccess = "SUCCESS" }))

このようにコントローラーでパラメーターを受け入れようとします

public ActionResult SaveTextComponent(TextComponentViewModel model, List<SelectListItem> list)
{
}

しかし、リストは空です..助けてください。

4

2 に答える 2

1

おそらく、このJavaScriptを使用してリストボックスのすべてのアイテムを選択し、コントローラーに送信できます。

function listbox_selectall(listID, isSelect) {
    var listbox = document.getElementById(listID);
    for(var count=0; count < listbox.options.length; count++) {
        listbox.options[count].selected = isSelect;
    }
}

その後、次の方法でフォームの関数を呼び出すことができます。

<script>
function submit() {
     listbox_selectall('righthand_side_listbox_id', true);
     return true;
}
</script>
<form onsubmit="return submit()">
...
</form>

Viral Patel ブログのクレジット

于 2013-11-14T08:34:18.607 に答える