2012-12-17 51 views
0

在MVC4中,需要列出一组客户端。我通过创建2模型ClientList和Client模型来实现这一点。我将ClientList类设置为可序列化的。现在需要为具有各种参数的该模型应用过滤条件。如何实现这一目标?这是我的模型。用于IEnumerable的MVC视图筛选器

public class Client : Paging 
{ 
    public virtual string CompanyName { get; set; } 
    public virtual string FirstName { get; set; } 
    public virtual string LastName { get; set; } 
} 

[Serializable] 
public class ClientList : Paging 
{ 
    private Client _client; 
    public Client Client 
    { 
     get { return _client; } 
     set { _client = value; } 
    } 
} 

在数据访问,我使用这个

while (reader.Read()) 
        { 
         var rCompanyName = reader.GetOrdinal("CompanyName"); 
         var rFirstName = reader.GetOrdinal("FirstName"); 
         var rLastName = reader.GetOrdinal("LastName"); 

         var resultClientList = new Client 
                { 
                 CompanyName = Convert.IsDBNull(rCompanyName) ? string.Empty : reader.GetString(rCompanyName), 
                 FirstName = Convert.IsDBNull(rFirstName) ? string.Empty : reader.GetString(rFirstName), 
                 LastName = Convert.IsDBNull(rLastName) ? string.Empty : reader.GetString(rLastName) 

                }; 
         var clients = new ClientList(); 
         admin.Client = resultClientList; 
         result.Data.Add(clients); 
        } 

考虑,

@model IEnumerable<Midlab.FreightOnce.BusinessObjects.ClientList 
@*i need filter condition here*@ 
@foreach (var item in Model) 
{ 
--rendering list here 
} 

感谢

回答

1

对于一个初学者,我会建议是,提出两个最简单的方法控制器中的不同方法以及与这些控制器相关的两个视图。第一个控制器函数将是一个get函数,与此相关的视图将打开过滤器列表,用户将选择过滤器条件并提交它,第二个控制器函数是post函数将接收请求,根据过滤器条件获取记录并将IEnumerable列表中的响应返回到第二个视图。另一种方法是使用JQuery.ajax调用。

+0

嗨,谢谢。确切的要求必须在相同的视图中,顶部的过滤条件和底部的过滤列表。你能否说出你的答案让我明白? – DON