別のドロップダウンリストの選択に基づいて、1つのドロップダウンリストにデータを入力したいと思います。
私はそれがかなり一般的な問題であることを知っています、そして私は丸2日間、ネット上で見つけたさまざまなサンプルを試してきましたが、役に立ちませんでした!
これが私のコードです:
コントローラ:
public List<SelectListItem> listTestCases(string id)
{
IQueryable<SelectListItem> A = repository.listTestCases(id);
return (A.toList());
}
public JsonResult listTestCases_2(string id)
{
IQueryable<SelectListItem> A = repository.listTestCases(id);
return Json(A);
}
2つのメソッドがあります。1つはリストを返し、もう1つはJSONResultsを返し、ネット上で見つけたすべてのメソッドを両方のメソッドで試しました。脚本:
<script>
$(document).ready(function() {
$('select#testCategoriesUniqueId').change(function() {
var testCategory = $(this).val();
$.ajaxSetup({ cache: false });
alert(testCategory);
$.getJSON("TestInput/listTestCases/" , {id: testCategory}, function(data) {
alert("here");
});
});
});
上記のコードでは、コードはlistTestCasesを通過し、結果を取得しますが、success関数には移動しません。(警告しません)
私が試してみました:
$.getJSON("TestInput/listTestCases/" + testCategory, null, function(data) {
alert("here");
});
驚くほど同じ結果ではありません。
私も試しました:(json-p)
$.ajax({
url: "TestInput/listTestCases/" + testCategory,
dataType: "json-p",
success: function(data) {
alert(data.length);
var S = "";
$("#testCasesUniqueId").removeOption(/./);
for (var i = 0; i < data.length; i++) {
S += data[i];
var val = data[i].Value;
var text = data[i].Text;
$("#testCasesUniqueId").addOption(val, text, false);
}
alert(S);
}
}
);
結果は文字列(System.collections.List [... SelectListItem]。であり、リストのオブジェクトは表示されません。したがって、listTestCases2で試してみましたが、メソッドも呼び出されていません。
getの代わりにpostを使用する必要があることをどこかで読んだり、postJSONを試したりしました。結果はありません。
基本的に私はとても迷っています。