我花了几天的时间来解决我的问题,但我完全做不到。
我正在做的是为数据库创建一个搜索页面。我不确定搜索的详细程度,所以我使用 ajax/partial 视图来添加搜索条件(我的意思是尝试,因为这是不起作用的部分)。
我可能犯了一个愚蠢的错误,我不知道......
它在没有 ajax/partial 视图的情况下工作,但这并不能真正满足我项目的目的(不够详细)。
我的代码如下:
这就是我的 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
}));
});
});
}
});
}
在此先感谢您的所有帮助,
丹尼尔