【问题标题】:Ajax beginform not working in JQuery in PartialView MVCAjax beginform 在 PartialView MVC 中的 JQuery 中不起作用
【发布时间】:2014-01-07 12:06:37
【问题描述】:

我们从主控制器视图加载局部视图,如下所示: @Html.Partial("MapPartial", 模型)

在局部视图中,我想渲染一张地图。目前,我有一个带有提交按钮的 Ajax beginform,它调用控制器操作,onSuccess 将数据加载到 JavaScript 函数中,该函数呈现如下所示的地图。这很好用。

<div id="map"></div>

@using (Ajax.BeginForm("GetData", "Directory", new AjaxOptions { OnSuccess = "mapInit" }))
{
    <button class="btn" type="submit">update map</button>
}

更新:好的,我了解加载控制器主视图时首先加载 JQuery 代码/函数,但是如何在选择部分视图时自动渲染地图。我不介意使用可能会延迟一秒钟来渲染地图的加载/进度条。请帮忙。

【问题讨论】:

  • 为什么你隐藏和显示相同的 div $(".ContentReplacable").hide(); $("#MapPartial").show();.那个 ajax 叫动作命中吗?

标签: javascript jquery ajax asp.net-mvc


【解决方案1】:

尝试使用这个谷歌地图触发器。

google.maps.event.trigger(map, 'resize');

其中“地图”是您的谷歌地图对象

$(document).ready(function () {
$.post('Directory/GetData',{},function(data){            
        mapInit(data);
    },"json");
function mapInit(data) {
$('#MapParial').html(data);
google.maps.event.trigger(map, 'resize');
}

});

【讨论】:

    【解决方案2】:

    我不知道你想做什么,但试试这个帖子功能

    $(document).ready(function () {
        $.post('Directory/GetData',{},function(data){            
                mapInit(data);
            },"json");
        function mapInit(data) {
        $('#MapParial').html(data);
        }
    });
    

    【讨论】:

    • Dinesh 我正在尝试在加载局部视图时渲染地图。我尝试了上面的代码,数据很好,但地图没有渲染。上面的代码在控制器加载时运行。但我需要它在加载局部视图时运行。
    • 你需要在哪里运行局部视图
    • 我编辑代码试试看
    • 如果您在上面的问题中看到前几行代码,则会有一个按钮显示地图 div 并隐藏其他 div。在地图 div 中是我希望在单击按钮后立即呈现地图的位置。
    • 不起作用,可能在局部视图中不起作用,需要单独的地图视图
    猜你喜欢
    • 2019-08-25
    • 2016-12-13
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    相关资源
    最近更新 更多