【发布时间】:2013-11-18 14:55:58
【问题描述】:
我有 asp.net mvc4 项目,其中我有基于 @Ajax.BeginForm 的过滤器表单,当我检查该部分底部的按钮时,加载了带有过滤元素的表格,其中有一列带有下拉菜单。当我选择一项下拉菜单时,我希望在更近的列中加载基于 ma 选择元素的信息,但是当我选择元素时选择不会生效。当我在控制台中应用我的 js 脚本时,它有一个动作。我的表格呈现为部分视图。
<div class="col-md-2">
<select id="UniversityProgramId" name="UniversityProgramId">
<option disabled="disabled">Select program</option>
@foreach(var program in item.Program)
{
<option value="@program.ProgramId">@program.ProgramName</option>
}
</select>
</div>
$(document).ready(function () {
$(function () {
$('#UniversityProgramId').change(function () {
$.getJSON('/Filter/ProgramCost/' + $('#UniversityProgramId').val(), function (data) {
var items = data;
$('#ProgramPrice').html(items);
});
});
});
});
更新,这是我在过滤器控制器中的 JSonResult 视图
public JsonResult ProgramCost(int Id)
{
var model = _repo.GetPrograms().Where(x => x.ProgramId == Id).Select(x => x.Price);
return Json(model, JsonRequestBehavior.AllowGet);
}
【问题讨论】:
-
您的 AJAX 调用有效吗?如果你在
var items = data上设置一个断点,你会取回数据吗?如果是这样,它是什么?您正在使用 JSON,因此您可能必须将data转换为适当的 HTML 结构。 -
@Chris 更新我的问题,问题在下一个:我的 jquery 代码没有捕获更改事件。而且我的 ajax 不工作。
-
您是否在错误控制台中看到任何错误?错误通常会停止 javascript 的执行。
-
@Chris 没有操作,没有错误,绝对没有,页面上好像没有这个下拉菜单,这很奇怪
-
刚刚注意到,您将执行推迟到 DOM 两次:
$(document).ready(function () {和$(function () {正在做同样的事情。你可以删除一个,看看是否有帮助?
标签: javascript jquery asp.net ajax asp.net-mvc