在此页面上,用户填写Web表单,并在创建时将其添加到列表中。 我想过滤列表,以便登录用户只能看到他们自己创建的表单。
我有一些Razor代码在所有可用项目中运行foreach循环,并且我使用Javascript来破坏当前登录用户的信息。
是否可以将此数据分配给剃刀代码中的var?
离。
@{var user = getUser(); //want something like this }
@foreach (var item in Model) {
//add check if item.name == user.name here
<tr>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
etc etc
<script>
function getUser() {$.getJSON('GetLoggedUserInfo', function(data) {
return data;
});
</script>
答案 0 :(得分:1)
我不认为在视图中使用此逻辑是个好主意。视图应尽可能“哑”。 您可以在数据存储级别或至少在控制器中进行项目过滤:
return View(items.Where(x => x.name == user.name))
答案 1 :(得分:1)
有一种更简单的方法。您可以使用以下方式获取当前用户属
HttpContext.Current.User