我正在使用C# MVC构建一个帮助桌面应用程序。我有一张“票”视图。在我的票务模型中,我有一个“RaisedBy”属性。我已经能够应用一些逻辑来显示登录用户的票证。下一步,我想给一个角色“admin”的用户展示所有的门票
我创建了一个foreach循环来返回所有项并将它们弹出到一个表中。以下是我在自己的视野中所尝试过的:
@foreach (var item in Model) {
if (item.RaisedBy == User.Identity.Name) {
if(item.RaisedBy == User.IsInRole ="Admin")这给了我一个错误:
Operator '==' cannot be applied to operands of type 'string' and 'method-group'我也试过:
@foreach (var item in Model) {
{
if (item.RaisedBy = User.IsInRole("Admin") { 这意味着:
Cannot implicitly convert type 'bool' to 'string'我对C#不是很有经验,所以任何建议或建议都会很感激。
发布于 2019-10-19 11:22:10
User.IsInRole对当前登录的用户进行操作,这是一种方法。它返回一个bool。
您在这里使用了错误的语法:if (item.RaisedBy = User.IsInRole("Admin"))。应该是if (User.IsInRole("Admin"))。
确认item.RaisedBy与当前用户匹配后,只需检查当前用户是否具有管理角色。
@foreach (var item in Model)
{
// if item.RaisedBy is current user
if (item.RaisedBy == User.Identity.Name)
{
// if current user is in "admin" role
if(User.IsInRole("Admin"))
{
}
}
}发布于 2019-10-19 11:18:21
,您没有使用等式比较
==。通过使用=,您可以将并列变量赋值到左边。
您的循环应该是:
@foreach (var item in Model) {
if (item.RaisedBy == User.Identity.Name) {
if (User.IsInRole("Admin"))
// Other code..https://stackoverflow.com/questions/58463040
复制相似问题