使用Javascript函数分配Razor var

时间:2013-05-17 18:57:59

标签: asp.net-mvc-4 razor-2

在此页面上,用户填写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>

2 个答案:

答案 0 :(得分:1)

我不认为在视图中使用此逻辑是个好主意。视图应尽可能“哑”。 您可以在数据存储级别或至少在控制器中进行项目过滤:

return View(items.Where(x => x.name == user.name))

答案 1 :(得分:1)

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