【问题标题】:jQuery getJSON data into modal form divjQuery getJSON 数据转换为模态表单 div
【发布时间】:2016-04-11 20:46:42
【问题描述】:

我正在开发一个 MVC 应用程序,尝试使用来自服务器的数据填充引导模式表单,为此我尝试执行以下操作:

1) 我加载了一个包含多个 ID 的网格,每个 ID 都有一个 javascript onclick 函数。

2) 函数获取ID号,并向服务器发起ajax请求以获取相关数据和ID作为参数。

3) 生成的 JSON 应该显示在模态正文中。

到目前为止,我已经让第 1 项和第 2 项工作,但我似乎无法让模态表单显示我从服务器检索的数据。我尝试将 $.getJSON 更改为 $.ajax,并使用段落或标题更改 div 标记(例如,假设一个字符串就可以了),但没有运气。我什至尝试用alert替换div填充方法,只是为了查看结果json,但这也没有用。

这是我的代码:

视图(仅模态部分):

<div id="modalZoomOperaciones" class="modal fade" role="dialog" tabindex="-1" data-url='@Url.Action("OperacionDetalle")'>
<div id="contenido">
    <div class="modal-content">
        <div class=" modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">@Global.Details</h4>
        </div>
        <div class="modal-body">
            <div id="response"></div>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">@Global.BackToList</button>
        </div>
    </div>
</div>

JS函数:

function showDetails(oper_numero) {

    var url = $('#modalZoomOperaciones').data('url');

    $.getJSON({
        url: url,
        data: { operacion: oper_numero },
        success: function(data){
            $("#response").html(data);
        }
    });

    $("#modalZoomOperaciones").modal({ backdrop: "static" });
}

控制器(我知道它有不必要的代码和冗余。这是一个测试环境,而不是实际的开发站点):

public JsonResult OperacionDetalle(int operacion)
    {
        IEnumerable<OperacionesTestViewModel> datos = UnitOfWork.ExecuteSpScript.spOperacionesDetalleTest(operacion);
        OperacionesTestViewModel datos1 = datos.FirstOrDefault();
        return Json(datos1);
    }

任何帮助将不胜感激。

【问题讨论】:

  • 成功回调是否被执行?尝试添加一个 console.log() 以查看它是否被调用。如果它确实被调用,则将数据输出到控制台。
  • 非常感谢。问题涉及 MVC 安全性,我获得了数据,但无法将其带到客户端。

标签: jquery html ajax


【解决方案1】:

如果有人对此感到困惑,将 $.getJSON 更改为 $.ajax 类型“POST”不是解决方案,因为不涉及任何事务。

由于 MVC 保护应用程序免受特定类型的 JSON 请求攻击,因此必须在控制器操作中添加一些内容:

而不是这个:

return Json(data);

必须是这样的:

return Json(data, JsonRequestBehavior.AllowGet);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2016-04-27
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多