0

次のコードを使用して、ユーザーとその役割を表示しています。

viewModel に2つの 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)

4

1 に答える 1

1

モデルに追加のプロパティを追加し、そのデータを取得する際にサーバー側で IsUserInRole を呼び出すことによってそれを埋めることができます。

public ActionResult GetData()
{
    var data = ...

    foreach (var role in data.Roles)
    {
        role.HasRole = Roles.IsUserInRole(username, role.RoleName);
    }

    return Json(data);
}
于 2013-01-06T18:11:50.453 に答える