我的Razor页面上有一个DropDownList
@Html.DropDownListFor(Model => Model.Clubs, new SelectList(ViewBag.Clubs as System.Collections.IEnumerable, "Id", "Name"),
"-- Select a club --",
new { id = "ddlClubs" })
使用来自javascript函数的Json调用填充另一个DropDownList:
$(function () {
$("#ddlClubs").change(function () {
var clubid = $(this).val();
$.getJSON("../Administration/LoadCompsByClubId", { clubid: clubid },
function (compsData) {
var select = $("#ddlComps");
select.empty();
select.append($('<option/>', {
value: 0,
text: "-- select a competition --"
}));
$.each(compsData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
});
此DropDownList已正确填充。
@Html.DropDownList("Id", new SelectList(Enumerable.Empty<SelectListItem>(),
"Id", "Name"), "-- select a competition --",
new{
id = "ddlComps",
data_url = Url.Action("GetTeams", "Administration")
})
现在,当我调用change函数将ActionResult
加载到div中时,未调用关联的GetTeams
Action。
$(function () {
$('#ddlComps').change(function () {
var url = $(this).data('url');
var value = $(this).val();
$('#result').load(url, { id: value });
});
});
谁能看到我哪里出错了?打赌它像往常一样简单......
答案 0 :(得分:0)
如果你写下这个返回其他下拉值的动作是什么样子会很好。对我来说,这听起来好像你没有返回JsonResult(扩展ActionResult),但我看不出比我看到的更多。
答案 1 :(得分:0)
如果您在AdministrationController上调用LoadCompsByClubId方法,则以下URL似乎需要将一些有趣的路由配置路由到正确的控制器。
$。getJSON(“../ Administration / LoadCompsByClubId”,{clubid:clubid}
您确定上述内容不应该是mvc控制器操作的默认设置。
$。getJSON(“/ Administration / LoadCompsByClubId”,{clubid:clubid}
如果您查看fiddler或浏览器调试器中的HTTP流量,您是否看到了服务器的请求和响应?