Bunu, bir IColumn arabirimi ve ardından modelimin farklı yönlerini doğru şekilde görüntüleyebilen bir grup sütun sınıfı oluşturarak ele aldım. Görünüm daha sonra her bir sütunu basit bir döngü ile işler. Örneğin: Bu benim için iyi çalışıyor
<tr>
<% foreach (var column in Model.UserColumns) { %>
<th><%= column.Title %></th>
<% } %>
</tr>
<% foreach (var item in Model.Items) { %>
<tr>
<% foreach (var column in Model.UserColumns) { %>
<td><%: column.Render(item) %></td>
<% } %>
</tr>
<% } %>
: Size göre
public interface IColumn
{
string Title { get; }
string Render(MyModelObject obj);
}
public class NameColumn : IColumn
{
public string Title { get { return "Name"; } }
public string Render(MyModelObject obj)
{
return obj.Name;
}
}
sonra böyle bir şey yapmak!
class UserViewModel
{
[DisplayName("User name")]
public string UserName { get; set; }
[DisplayName("E-mail address")]
public string Email { get; set; }
[DisplayName("Age")]
public int Age { get; set; }
}
Sonra kolayca yansıma yoluyla özelliklerine erişebilir ve kullanıcı ayarlarında seçilen özellik listesini kaydetmek:
Bu, aynı zamanda bir modelle (örneğin bir görünüm modeliyle) çalışmalı mıdır? –
@HughSeagraves Evet. – LukLed