問題の解決策を見つけるために数日を費やしましたが、まったくできませんでした。
私がやっていることは、データベースの検索ページを作成することです。検索の詳細がわからないので、検索条件を追加するために ajax/部分ビューを使用しています (これは機能していない部分なので試してみることを意味します)。
私は愚かな間違いを犯しているのかもしれません...
ajax/部分ビューなしで動作していますが、それは私のプロジェクトの目的を実際には果たしません(十分に詳細ではありません)。
私のコードは次のとおりです。
これが、部分ビューを呼び出す私の ajax です。
<script src="@Url.Content("~/Scripts/jScript1.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Ajax.ActionLink("Add search criteria",
"AddSearch", new AjaxOptions
{
UpdateTargetId = "search",
InsertionMode = InsertionMode.InsertAfter,
HttpMethod = "POST",
OnSuccess = "DBUpdate"
})
<div id="search">
</div>
<input type="submit" value="Search" />
}
私の部分的な見方:
@model MvcApplication1.Models.search
<div id="a">
@Html.DropDownListFor(x => x.Table, Model.Tables, "-- Select Table --")
@Html.DropDownListFor(x => x.Type, Enumerable.Empty<SelectListItem>(), "-- Select Type --")
@Html.DropDownListFor(x => x.Name, Enumerable.Empty<SelectListItem>(), "-- Select Name --")
@Html.EditorFor(x => x.less)
@Html.EditorFor(x => x.equ)
@Html.EditorFor(x => x.more)
</div>
そして私のjsファイル:
function DBUpdate() {
$('#Table').change(function () {
var selectedTable = $(this).val();
if (selectedTable != null && selectedTable != '') {
$.getJSON('@Url.Action("Types")', { Table: selectedTable }, function (types) {
var typesSelect = $('#Type');
typesSelect.empty();
$.each(types, function (index, types) {
typesSelect.append($('<option/>', {
value: types.value,
text: types.text
}));
});
});
}
});
$('#Type').change(function () {
var selectedType = $(this).val();
var selectedTable = $('#Table').val();
if (selectedType != null && selectedType != '') {
$.getJSON('@Url.Action("Names")', { Type: selectedType, Table: selectedTable }, function (names) {
var namesSelect = $('#Name');
namesSelect.empty();
$.each(names, function (index, names) {
namesSelect.append($('<option/>', {
value: names.value,
text: names.text
}));
});
});
}
});
}
ダニエルの助けを借りて、前もって感謝します