MVC 6(コア)プロジェクト内でSelect2.jsを使用しようとしています。ユーザーが最初のリストボックス内で値(複数の値)を選択すると、 2番目のリストボックス内の値の更新リストが提供されます。たとえば、ユーザーがメーカーリストボックスから「Ford」と「Renault」を選択すると、ブランドリストボックスに関連する値のみが表示されます。モンデオ、マスタング、クリオ、メガネなどMVCコアを使用してSelect2で自動ポストバックする方法
マイビューの構文は次のとおりです。
@model MyProject.ViewModels.MyViewModel
<script type="text/javascript">
$(document).ready(function() {
$('#ManufacturerID').select2({
placeholder: 'Please make a selection...',
width: 500
});
$('#BrandID').select2({
placeholder: 'Please make a selection...',
width: 500
});
});
</script>
<form asp-action="Generation">
<div class="form-horizontal">
<div class="col-md-10">
@Html.ListBoxFor(model => model.ManufacturerID, Model.ManufacturerNames)
@Html.ListBoxFor(model => model.BrandID, Model.BrandNames)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
</form>
私は送信ボタンをクリックすると、ポストアクションメソッドが正常にメーカーIDのリストを取得:
// POST: MyController/Generation
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Generation(MyViewModel myViewModel, IEnumerable<int> manufacturerID)
{
return RedirectToAction("Generation");
}
私が本当に望むのは、ユーザーがサブミットをクリックしたときではなく、リストボックスからオプションを選択するとすぐにコントローラのポストアクションメソッドへの呼び出しが実行される、WebフォームのAJAXアップデートパネルに似ています。
ご協力いただき誠にありがとうございます。
よろしく、 X22
お返事ありがとうございます。私はoff()メソッドが何をしているのかよくわかりませんが、それでもコードが正しく動作していません。 「Ajaxリクエスト」の例と、「コールバックでpageInit()を呼び出す」方法を少し説明していただければ幸いです。 – X22