0

我遇到了一个奇怪的行为,想得到你的意见。我花了半天的时间来解决这个问题并尝试了各种选择,但没有运气。

这是MVC。

我有 2 个标签。

一般和简介。

在此页面的右上角,我有一个下拉列表,其中包含该用户的个人资料列表。

默认情况下,一旦用户登录,他们就会显示“常规”选项卡,然后单击“个人资料”我会拨打电话以获取个人资料详细信息,例如名字、姓氏等并显示它们。

当用户在配置文件选项卡上时,他们可以从顶部的下拉列表中选择不同的配置文件。

问题是当从下拉列表中选择配置文件时,我会进行 ajax 调用,然后在此配置文件选项卡中显示内容。由于某种原因,此内容从未出现,并且始终显示旧的配置文件数据。我认为它可能正在缓存数据,但是这两个选项卡的缓存都设置为 false。配置文件选项卡根本不会刷新,即使我在调试 cshtml 文件时看到最新数据通过但它没有呈现。

任何帮助,将不胜感激。

谢谢。

        <div id="mainUserPDTab">
        <div id="UserPDTab">
        <ul>
        <li>
        <a class="tab" href="@Url.Action("UserDetails", "CustomerSupport", new { signOnId = @Model.SignOnId, internalId = @Model.InternalId, userAgentGuid = @Model.UserAgentGuid })">
        <span>General</span>
        </a>
        </li>
        @if (Model.Profiles != null)
        {
        <li><a class="tab" href="@Url.Action("UserProfileDetails", "CustomerSupport", new {signOnId = @Model.ProfileSignOnId, internalId = @Model.ProfileInternalId, userAgentGuid = @Model.ProfileUserAgentGuid})">
        <span>Profile</span>
        </a>
        </li>
        }

        </ul>
        </div>
        </div>

        2).js file
        $('#mainUserPDTab').tabs({
        cache: false,
        select: function (event, ui) {
        checkSession();
        var $curr_panel = $(ui.panel);
        $curr_panel.find('.date').datepicker();
        }
        });
        $('#UserPDTab').tabs({
        cache: false,
        select: function (event, ui) {
        checkSession();
        var $curr_panel = $(ui.panel);
        $curr_panel.find('.date').datepicker();
        }
        });
        3) Dropdown click ajax call
        $("button#viewProfiles").live("click", function () {
        var val = $('.ddrelUsers option:selected').val().split("|");
        var signOnId = val[0];
        var internalId = val[1];
        var useragentGuid = val[3];



        var action = "UserProfileDetails?signOnId=" + signOnId + "&internalId=" + internalId + "&userAgentGuid=" + useragentGuid + "&fromprofile=true";
        $.ajax({
        url: action, //$(this).attr('href'),
        dataType: "html",
        beforeSend: function () {
        checkSession();
        },             
        success: function (result) {
        if ($.trim(result) != '' && result.indexOf('INACTIVESESSION') > -1) {
        window.location.href = "../SignOn";
        return false;
        } else {

        $('#mainUserPDTab').tabs('select', 2);



        }
        },
        error: function (xhr, status, error) {

        }

        });
4

0 回答 0