私の問題は私にとって非常に一般的なようで、オンラインで答えを見つけることができると思っていましたが、できませんでした.
ドロップダウン リストがあり、選択した値に基づいて、複数の部分ビューが必要です。(1 つの選択肢には 1 つも含まれず、もう 1 つの選択肢には 3 つ、など)
「DriveDetail」オブジェクトを取得する部分ビューがあり、JQuery を使用して動的にこれらの部分ビューを複数ロードする必要があります。
これまでのところ、私は持っています:
$.ajax({
url: "TestInput/getTestStationInformation2/" + testStation,
dataType: "json",
type: 'post',
success: function (data) {
for (var i = 0; i < data.length; i++) {
$('#driveDetailDiv').append(data[i]);
}
}
});
これらのドライブの IEnumerable または List を返すことができます。
public JsonResult getTestStationInformation(long id)
{
IEnumerable<DriveDetails> aa = repository.listDriveInfo(id);
return Json(aa);
}
public JsonResult getTestStationInformation2(long id)
{
List<PartialViewResult> res = new List<PartialViewResult>();
List<DriveDetails> aa = repository.listDriveInfo(id).ToList();
for (int i = 0; i < aa.Count(); i++)
{
res.Add(PartialView("DriveDetailsPartial", aa[i]));
}
return Json(res);
}
しかし、これらのどれも機能しません。
私は持っている:
$.get('<%= Url.Action("Details","TestInput", null) %>', function (tmp) {
$('#driveDetailDiv').append(tmp);
});
私のコードでは、null の代わりに data[0] を送信し、data[0] の partialView を取得する必要があります。しかし、データ[0]の送信方法がわかりません。やってみると
new {id = data[0])
エラーが発生し、PartialViews のリストを返す 2 番目のアクションを使用しようとすると、それらを追加しようとしても表示されません。