Я использую следующий код для отображения пользователей и их ролей.нокаут вложенный foreach не работает
Я использую нокаут, где у меня есть два ObservableArray в моем представленииModel: члены и роли.
Я не могу найти способ отправить имя пользователя и ролевое имя методу Roles.IsUserInRole (имя пользователя, роли) внутри вложенного цикла foreach.
Что я могу сделать, чтобы отправить эти роли каждому члену моей модели?
<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 внутри вашего контроллера и передать логическое значение в вашей модели viewmodel. –