如何避免控制器在ajax调用中从div.load调用两次

时间:2013-07-30 08:56:16

标签: c# jquery asp.net-mvc-4

我在我的应用程序中加载了两个部分视图。单击菜单中的,在ajax调用中从div.load()调用控制器两次。如何避免控制器调用两次。

Jquery Ajax调用:

  $(document).ready(function () {
            $('.common').click(function () {
                var pageid = this.id;
                LoadPartialView(pageid);
            });
        });

        function LoadPartialView(pageid) {
            alert('pass');
            var urls = '/WPindex/' + pageid + '/'
            $.ajax({
                url: urls,
                type: 'GET',
                contentType: 'application/html',
                success: function (result) {
                    $('#divDefault').hide();                     
                    $('#divDynamic').load('/WPindex/' + pageid);                        
                }
            });
        }

查看

<body>
    <div>
     <ul>
     <li><a id="MyAccount" class="common"><strong>Account Dashboard</strong></a></li>
     <li><a id="AccountDetails" class="common">Account Information</a></li>
     <li><a id="AddressBook" class="common">Address Book</a></li>
    </ul>
    </div>
     <div id="divDefault" class="order">     

     </div>
     <div id="divDynamic" class="order">
     </div>

</body>

控制器

  public ActionResult AccountDetails()
    {
       return PartialView();
    }

在此处单击AccountDetails锚标记,将加载局部视图。但控制器被调用两次。我的代码中有什么错误。 ? 有关带部分视图的任何建议吗?

1 个答案:

答案 0 :(得分:4)

那么,

$.ajax({
...

部分首次调用控制器,

success: function (result) {
    ...
    $('#divDynamic').load(...

制作第二个。如果你的任务只是在div中加载数据,你可以只用一行:

$('#divDynamic').load('/WPindex/' + pageid);