2013-05-17 2 views
0

이 페이지에서 사용자가 웹 양식을 채우면 작성시 목록에 추가됩니다. 로그인 한 사용자가 자신이 만든 양식 만 볼 수 있도록 목록을 필터링하고 싶습니다.Javascript 함수를 사용하여 Razor var 할당

모든 사용 가능한 항목을 통해 foreach 루프를 실행하는 일부 Razor 코드가 있으며 현재 로그인 한 사용자 정보를 추출하는 Javascript가 있습니다.

이 데이터를 면도기 코드의 var에 할당 할 수 있습니까?

ex.

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

답변

1

나는이 논리를보기에 가지고 생각하지 않습니다. 보기는 '벙어리'가되어야합니다.

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

Worked great! 후속 질문으로보기에 두 번째 매개 변수를 전달할 수 있습니까? 왜냐하면 사용자가 특정 사용자 그룹 위에있는 경우에만 특정 링크를 볼 수 있기를 원하기 때문에 간단한 bool을 보내는 것이 좋을 수도 있지만 가능하지는 않습니다. –

+1

모든 매개 변수를 전달할 수 있습니다. ViewData/ViewBag가 적합합니다. http://www.codeproject.com/Articles/476967/WhatplusisplusViewData-2cplusViewBagplusandplusTem – Ramunas

+0

다시 한번 감사드립니다! 모든 것이 잘 작동합니다. –

1

쉬운 방법이있다 : 당신은 항목이 데이터 스토리지 수준에서 필터링 또는 적어도 컨트롤러에 만들 수 있습니다. 다음을 사용하여 현재 사용자 속성을 얻을 수 있습니다. HttpContext.Current.User