0
다음 코드를 사용하여 사용자와 해당 역할을 표시하고 있습니다.knockout 중첩 된 foreach가 작동하지 않습니다.
내 viewModel에 두 개의 ObservableArray가있는 녹아웃을 사용하고 있습니다. 멤버와 역할.
중첩 된 foreach 루프 내부의 Roles.IsUserInRole (username, role) 메서드에 사용자 이름과 롤 이름을 보내는 방법을 찾을 수 없습니다.
내 모델의 각 구성원에게 이러한 역할을 보내려면 어떻게해야합니까?
<table>
<thead>
<tr>
<th>Username
</th>
<th data-bind="foreach: roles">
<span data-bind="text: roleName"></span>
</th>
</tr>
</thead>
<tbody data-bind="foreach: members">
<tr>
<td data-bind="text: userName">
</td>
<td data-bind="foreach: roles">
@using (Html.BeginForm("UserToRole", "Main"))
{
<input type="hidden" data-bind="value: members().userName" name="username" />
<input type="hidden" data-bind="value: roleName" name="rolename" />
<input type="checkbox" name="ischecked" onclick="this.form.submit();" value="true" checked="@System.Web.Security.Roles.IsUserInRole(username.value, rolename.value)" />
}
</td>
</tr>
</tbody>
문제는 : System.Web.Security.Roles.IsUserInRole (username.value, rolename.value)
녹아웃은 서버가 아니라 클라이언트에서 템플릿을 처리합니다 (foreach 바인딩). – Rustam
이것은 단일 페이지 응용 프로그램이며 바인딩은 클라이언트에서 수행됩니다. – user1714324
서버에서 실행되는 면도기 코드를 클라이언트 측 코드와 혼합합니다. 컨트롤러 내에서 Roles.IsUserInRole을 확인하고 뷰 모델에서 부울 값을 전달해야합니다. –