【发布时间】:2015-05-06 12:02:39
【问题描述】:
我有一种情况,我正在设置用户值并尝试重新加载索引页面。这只是一个示例页面,我不能使用任何类型的用户控件,例如 ASP.NET。每个用户都在数据库中,并且从那里检索角色。我的索引是这样的:
[HttpGet]
public ActionResult Index(long? id)
{
AdminModel admin = new AdminModel();
UserModel usermodel = new UserModel();
if (id != null)
{
admin.UserModel = usermodel;
admin.UserModel.UserId = id.ToString();
admin.UserModel = UserAndRoleRepository.GetOrStoreUserProfile(admin.UserModel.UserId);
}
else
{
admin.UserModel = usermodel;
admin.UserModel = UserAndRoleRepository.GetOrStoreUserProfile(currentUser);
}
return View(admin);
}
第一次加载时效果很好。在页面中,我根据用户角色设置值:
$(document).ready(function () {
debugger;
user = function () { return @Html.Raw(Json.Encode(Model)) }();
if (user.UserModel != null) {
if (user.UserModel.UserRole == 'ADMIN') {
$("#btnAdmin").show();
$("#btnTran").show();
$("#btnNew").show();
$("#btnAdjust").show();
$("#btnReports").show();
}
if (user.UserModel.UserRole == 'TRANS') {
$("#btnReports").show();
$("#btnTran").show();
}
if (user.UserModel.UserRole == 'REPORTS') {
$("#btnReports").show();
}
}
});
AJAX 调用是这样的:
$.ajax({
type: 'POST',
dataType: 'json',
url: '@Url.Action("SetUser")',
data: { userid: ui.item.value },
success: function (data) {
if (data == null) {
}
else {
}
},
error: function (xhr) {
//var err = xhr.responseText;
//alert('error');
}
});
还有 SetUser 操作:
[HttpPost]
public ActionResult SetUser(string userid)
{
return RedirectToAction("Index", new { id = Convert.ToInt64(userid) });
}
这很好用,因为 Index 方法是使用所选 ID 触发的,但页面不会重新加载以便能够设置按钮。有什么想法吗?
【问题讨论】:
-
这是因为你有一个 ajax 调用。在ajax成功方法中,做
location.reload(true)- More info -
重新加载只是以我作为用户再次加载我的索引,因为 ID 没有传递给索引。
-
@Dean.DePue 您找到解决方案了吗,还是需要帮助?
-
不得不下班 - 明天将发布我所做的适合我独特情况的工作......
-
@Dean.DePue 有什么解决办法吗?以下答案对您有帮助还是您仍需要帮助?
标签: javascript c# jquery asp.net-mvc razor