asp.net-mvc - 如何根据Controller中的RoleId调用ajax内的Session?
问题描述
Id
我需要根据我的控制器和脚本页面中的哪个网页来调用某个网页,user.RoleId
它需要RoleId
使用会话来调用它。
我的控制器:
if (ModelState.IsValid)
{
var user = db.UserInfoes.ToList().Where(x => x.UserName == input.name && x.Password == input.password).FirstOrDefault();
var casemanagers = db.CaseRegistrations.ToList();
if (user != null)
{
var CategoryId = db.Agencies.Where(x => x.AgencyId == user.AgencyId).Select(x => x.CategoryId).FirstOrDefault();
var CategoryName = db.AgencyCategories.Where(x => x.Id == CategoryId).Select(x => x.CategoryName).FirstOrDefault();
Session["username"] = user.UserName;
Session["userRole"] = user.RoleId.ToString(); ---> This is user.RoleId mentioned
Session["userAgency"] = user.AgencyId;
Session["userId"] = user.UserId;
Session["CategoryId"] = CategoryId;
Session["CategoryName"] = CategoryName;
}
else
{
return Json("Invalid Credential");
}
if (Session["userRole"] != null)
{
return Json(user);
}
}
return Json(status);
我的观点:
<script>
$(document).ready(function () {
$('#btnSubmit').click(function () { ---> This is where it needs to be called upon onclick
var username, password;
username = $('#txtusername').val();
password = $('#txtpassword').val();
if (username == '') { $('#txtusername').addClass('error'); return; }
else { $('#txtusername').removeClass('error'); }
if (password == '') { $('#txtpassword').addClass('error'); return; }
else { $('#txtpassword').removeClass('error'); }
var input = {};
input.name = username;
input.password = password;
$('#cover-spin').show(0);
$.ajax({
url: '@Url.Action("GetUserInfo", "Login")',
type: "POST",
data: JSON.stringify(input),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.Session["userRole"] == 4 ) {
window.location.href = '@Url.Action("Details", "CaseRegistration")';
$('#cover-spin').hide(0);
}
else {
location.href = '/Dashboard/Index';
$('#cover-spin').hide(0);x
alert(data);
}
},
error: function () {
alert("An error has occured!!!");
}
})
})
})
</script>
解决方案
你应该改变这部分:
(data.Session["userRole"] == 4 )
至:
(data.RoleId == 4 )
顺便说一句,您可以优化控制器代码。
推荐阅读
- css - 将样式组件与反应和故事书一起使用时字体未加载
- python - 使用 Selenium + Python 3.8 并且无法单击链接,想知道如何处理 onclick?
- c# - Xamarin 表单 ViewModel 与列表中的列表
- python - AttributeError:模块“tensorflow.compat”没有属性“v1”Tensorflow v:1.10.0
- node.js - 未定义必需的,使用电子时,我该如何解决?(已经尝试过节点集成)
- c# - 使用现有方法或重写 - 帮助程序库
- powershell - 在 WebsCount 参数中列出 0 的 SharePoint Online 子网站
- ios - 如何使用我的操作系统版本在 Apple Watch 上安装应用程序?
- bash - 收到数据后如何关闭netcat连接?
- javascript - 更新 mongodb 数组对象中的值