我对MVC很新。我正在努力工作,如何根据登录的人在表格行中显示一些数据。即。如果登录的人与该行的检查器匹配,则显示一些内容。如果没有匹配显示一些不同的内容。
我想出了:
<td rowspan="2">
<span>Checker:</span>
@if(item.Checker.Username == HttpContext.Current.User.Identity.Name) {
<div> Show content if logged in user matches row owner </div>
}
else {
<div> Show different content when there isn't a match </div>
}
</td>
我想知道这是否是正确的做法。我知道你希望尽可能多地保留逻辑,所以这可能不是最好的方法。
有人可以告诉我这是否可以达到这个目的?
有更好的方法吗?
答案 0 :(得分:0)
实际上,更好的方法是在视图模型上添加一个布尔属性,以便您的视图如下所示:
@if (item.IsCurrentUserOwner) {
<div> Show content if logged in user matches row owner </div>
}
else {
<div> Show different content when there isn't a match </div>
}
现在,当控制器从域模型映射到视图模型时,它将根据当前登录的用户填充此属性。请记住,视图应该尽可能愚蠢,像这样的授权逻辑更适合控制器。
如果你不想打扰这个属性,你的方法也没关系。我只是给了我2美分的改进。