0

在此页面上,用户填写 Web 表单,并在创建时将其添加到列表中。我想过滤列表,以便登录用户只能看到他们自己制作的表单。

我有一些 Razor 代码在所有可用项目中运行 foreach 循环,并且我有 Javascript 可以撕掉当前登录的用户信息。

是否可以将此数据分配给剃刀代码中的变量?

前任。

@{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>
4

2 回答 2

1

我认为在视图中包含这种逻辑不是一个好主意。视图应该尽可能“愚蠢”。您可以在数据存储级别或至少在控制器中进行项目过滤:

return View(items.Where(x => x.name == user.name))
于 2013-05-17T19:30:35.230 回答
1

有一个更简单的方法。您可以使用以下方法获取当前用户属性: HttpContext.Current.User

于 2013-05-20T00:06:02.100 回答