我遇到了一种奇怪的行为,想得到你的意见。我花了一半的时间来搞清楚这一点并尝试各种选择,但没有运气。
这是MVC。
我有两个标签。
一般和简介。
在此页面的右上角,我有一个下拉列表,其中包含此用户的个人资料列表。
默认情况下,一旦用户登录,他们就会显示“常规”选项卡,点击“个人资料”后,我会拨打电话获取个人资料详细信息,如名字,姓氏等,并显示它们。
当用户位于个人资料标签上时,他们可以从下方的下拉列表中选择不同的个人资料。
问题是当从下拉列表中选择配置文件时,我进行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) {
}
});