私はhtml、razor、およびMVCの新機能ですので、これは簡単な修正ですが謝罪しますが、解決しないままこの問題を解決しました。ドロップダウンリストが変更されるたびに、部分的なビューを再生成するコントローラアクションがトリガされるようにしたいと思います。私はこれを 'onchange' html属性で実装しようとしました。また、ドロップダウンのidを設定し、jquery関数がそれをトリガーするようにしました。しかし、私は以下の3つの機能のいずれかを発動することはできません。ここでDropDownListForは変更されたときに関数を呼び出さない
@model AislesOnlineDataControl.Models.PickupPointsListModel
@{
ViewBag.Title = "PickupPointsList";
}
<script>
function Select() {
@Html.Action("PickupPartial", "PickUpPoint", new { mod = Model.points[Model.selectedID] });
};
$("#PupDropDown").on('change', function() {
@Html.Action("PickupPartial", "PickUpPoint", new { mod = Model.points[Model.selectedID] });
});
$(function() {
$('#PupDropDown').change(function() {
Model.selectedID = Convert.ToInt32(selectPoint.SelectedValue);
//window.location.reload();
@Html.Action("PickupPartial", "PickUpPoint", new { mod = Model.points[Model.selectedID] });
});
});
</script>
<h2>Manage Pick-Up Points</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@{SelectList selectPoint = new SelectList(Model.selectedPoint, "Value", "Text");}
<div class="form-inline">
<div class="row">
@Html.DropDownListFor(model => model.selectedID, selectPoint, null, new { @id="PupDropDown", @onchange = "Select()" })
@Html.ActionLink("New", "CreatePickup", "PickUpPoint", null, new { @class = "btn btn-default pull-right" })
</div>
</div>
<div>
@Html.Partial("~/Views/PickUpPoint/PickupPartial.cshtml", Model.points[Model.selectedID])
</div>
</div>
}
で簡単なAJAX呼び出しを行う例である '@ Html.Action()'かみそりのコードであり、そのクライアントに渡す前に、サーバー上で評価されます。クライアント側のイベントに応じてクライアント上で再評価されることはありません。サーバーメソッドを呼び出して部分的なビューを返すには、ajaxを使用する必要があります。 –