1

問題: UserModel の EditorTemplate をロードすると、UserRoles リストが UserRole エディターのリストを生成しません。

私のモデル:

    public class UserSearchModel
{
    [ScaffoldColumn(false)]
    public Guid UserId { get; set; }
    [DisplayName("User Name")]
    public string UserName { get; set; }
    [DisplayName("User Roles")]
    public UserRoles UserRoles { get; set; }
}

    public partial class UserRoles : List<UserRole>
{

}

    public class UserRole
{
    public string RoleName { get; set; }
    public bool IsChecked { get; set; }
    public string Description { get; set; }
}

私のエディター テンプレート:

@model eGate.BackOffice.WebClient.Model.UserModel
@Html.LabelFor(m=>m.UserName)
@Html.EditorFor(m=>m.UserName)
<h1>roles</h1>
@Html.EditorFor(m=>m.UserRoles)



@model eGate.BackOffice.WebClient.Model.UserRole
@Html.LabelFor(m=>m.RoleName)
@Html.LabelFor(m=>m.IsChecked)
@Html.CheckBoxFor(m=>m.IsChecked)
@Html.LabelFor(m=>m.Description)

実際の出力は次のようになります。

ユーザー名 [ someuser ]

役割

期待される出力:

ユーザー名 [ someuser ]

役割

role1 [x] ischecked role for 1

role2 [x] ischecked role for 2

role3 [x] ischecked role for 3

4

3 に答える 3

0

独自の型を派生させるのではなく、型 List を作成する必要があります。

于 2011-09-27T20:09:34.377 に答える
0

この問題は、ユーザー EditorTemplate が telerik mvc グリッドの popUp ウィンドウによって提供されていることが原因である可能性が高いようです。

テンプレートが期待どおりに機能することを確認するために、グリッド ポップアップの外でテストしました。この質問を閉じて、別のエントリで正しい質問を再質問します。

于 2011-09-28T19:34:18.393 に答える
0

問題は、UserRoles別のクラスとしての定義にあると思います。クラスのプロパティUserRolesを次のように変更してみてください。UserSearchModel

public List<UserRole> UserRoles { get; set; }

MVC はUserRolesクラスのテンプレートを検索しています。テンプレートはUserRoleクラス用であるため、MVC はテンプレートを見つけることができません。

アップデート

また、EditorForUserRoles モデルに使用していることを見落としていました。EditorForModel次のように使用する必要があります。

@Html.EditorForModel(m => m.UserRoles)
于 2011-09-27T20:39:18.973 に答える