Javascript 带有ajax功能的asp.net mvc 4问题
我有一个asp.net mvc4项目,其中我有一个基于@Ajax.BeginForm的过滤表单,当我选中部分底部的按钮时,我加载了带有过滤元素的表,其中有一列带有下拉列表。当我选择一个下拉列表项时,我希望在更近的列中加载基于ma select元素的信息,但当我选择元素时select并没有起作用。当我在控制台中应用js脚本时,它有一个动作。我的表格呈现为局部视图Javascript 带有ajax功能的asp.net mvc 4问题,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我有一个asp.net mvc4项目,其中我有一个基于@Ajax.BeginForm的过滤表单,当我选中部分底部的按钮时,我加载了带有过滤元素的表,其中有一列带有下拉列表。当我选择一个下拉列表项时,我希望在更近的列中加载基于ma select元素的信息,但当我选择元素时select并没有起作用。当我在控制台中应用js脚本时,它有一个动作。我的表格呈现为局部视图 <div class="col-md-2"> <select id="Univ
<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);
});
});
});
});
您正在调用.getJSON,但随后将结果放入ProgramPrice的HTML中
如果
/Filter/ProgramCost/'+$('#UniversityProgramId').val()
返回JSON,则需要遍历每个元素并创建HTML。我怀疑您是否可以使用JSON值设置HTML。您的AJAX调用正常吗?如果您在var items=data
上设置了断点,您是否正在恢复数据?如果是,是什么?您使用的是JSON,因此可能必须将数据
转换为适当的HTML结构。@Chris更新我的问题,问题在下一个:我的jquery代码不是捕获更改事件。我的ajax不工作。你在错误控制台中看到任何错误吗?错误通常会停止javascript执行。@Chris没有操作,没有错误,完全没有任何内容,看起来页面上不存在此下拉列表,这很奇怪。刚才注意到,您将执行推迟到DOM两次:$(document)。ready(function(){
和$(function(){
正在做同样的事情。你能删除一个,看看是否有帮助吗?更新我的问题。在我的ProgramPlace元素中,我有下一个:的ID是
ProgramPlace
但是,在JavaScript中,您引用的是ProgramPrice
,下面是执行.html()时的示例
在一个整数列表上,我相信这就是你正在做的:我的问题基于下一个:我没有任何响应/请求,没有发送,也没有到达。关于ProgramPlace<对不起,我的代码ProgramPrice在网站上打印错误
public JsonResult ProgramCost(int Id)
{
var model = _repo.GetPrograms().Where(x => x.ProgramId == Id).Select(x => x.Price);
return Json(model, JsonRequestBehavior.AllowGet);
}