【问题标题】:asp.net mvc 4 issue with ajax function带有ajax功能的asp.net mvc 4问题
【发布时间】: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


【解决方案1】:

您正在调用 .getJSON,但随后将结果放入 ProgramPrice 的 HTML 中。

如果 /Filter/ProgramCost/' + $('#UniversityProgramId').val() 返回 JSON,那么您需要遍历每个元素并创建 HTML。我怀疑你可以只使用 JSON 值设置 HTML。

【讨论】:

  • 更新我的问题。在我的 ProgramPlace 的元素中,我有下一个:

  • 的 ID 是 ProgramPlace 但是,在 JavaScript 中,您引用的是 ProgramPrice

  • 另外,这里有一个例子,当你在一个整数列表上执行.html() 时,我相信这就是你正在做的事情:jsfiddle.net/hwx8w
  • 我的问题基于下一个:我没有任何响应/请求,没有发送,也没有到达。关于 ProgramPlace
猜你喜欢
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
相关资源
最近更新 更多