我遇到了一个奇怪的行为,想得到你的意见。我花了半天的时间来解决这个问题并尝试了各种选择,但没有运气。
这是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) {
}
});