2011-09-27 40 views
1

問題:當我加載UserModel的EditorTemplate時,UserRoles列表不會生成UserRole編輯器的列表。未填充列表的MVC3編輯器模板

我的模型:

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 角色1

role2所 [X]器isChecked 角色爲2

role3 [X]爲器isChecked 3

+0

您需要提供更多信息。你的EditorTamplate叫什麼名字,你把它放在哪裏? –

回答

0

作用,你應該只讓類型列表,而不是派生自己的類型。

0

我希望問題是UserRoles作爲一個單獨的類的定義。嘗試在UserSearchModel類更改屬性UserRoles到:

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

MVC正在搜索的UserRoles類的模板。由於該模板適用於UserRole類,因此MVC無法找到任何模板。

UPDATE

另外,我忽略了你正在使用EditorFor爲模型的UserRole。您應該使用EditorForModel像這樣:

@Html.EditorForModel(m => m.UserRoles) 
+0

只是爲了不排除任何事情,我試了一下。但仍然沒有骰子。 –

0

這個問題看起來更容易被用戶EditorTemplate正在由Telerik的MVC格的彈出窗口中擔任了這一事實造成的。

我已經在網格彈出窗口以外測試,發現模板按預期工作。我將結束這個問題,並在另一個條目中重新提出正確的問題。

+0

我在編輯器模板和telerik中也遇到了一些問題,它在網格中引用時沒有生成模板 – Tito