2012-05-09 53 views
0

我的知识是.Net缺乏巨大的。在之后的任何援助,将不胜感激:使用实体框架和MVC3搜索记录

我有一个客户型号:

public class CustomerModel 
{ 

private DBEntities db = new DBEntities(); 

public List<CustomerModel> CustomerResultModel { get; set; } 

[Required] 
[DisplayName("Customer Number")] 
public long ID { get; set; } 

[StringLength(50)] 
public string Firstname { get; set; } 

[StringLength(50)] 
public string Organisation { get; set; } 

[StringLength(500)] 
[DisplayName("Address Line 1")] 
public string AddressLine1 { get; set; } 

[StringLength(50)] 
[Required(ErrorMessage = "A Postcode is required")] 
public string Postcode { get; set; } 

public CustomerModel GetCustomerResults(string q) 
{ 
    CustomerModel model = new CustomerModel(); 

    var res = from s in db.CMUCustomers select s; 

    foreach (var result in res) 
    { 
     CustomerModel modelres = new CustomerModel(); 

     modelres.ID = result.ID; 
     modelres.CustomerName = result.Firstname; 
     modelres.AddressLine1 = result.AddressLine1; 
     modelres.Postcode = result.Postcode; 
     modelres.Organisation = result.Organisation; 

     model.CustomerResultModel.Add(modelres); 
    } 

    return model; 
    } 

} 

在我的控制器,我有:

private CustomerModel customerResults = new CustomerModel(); 

public ViewResult Search(string q) 
{ 

CustomerModel model = customerResults.GetCustomerResults(q); 
return View(model); 

} 

然而,我得到“model.CustomerResultModel错误。加入(modelres);”说明'对象引用未设置为对象的实例'。任何建议,我可能做错了什么?

感谢

+0

你在哪里添加这条语句? 'private CustomerModel customerResults = new CustomerModel(); ' – TRR

回答

2

它告诉你,你没有实例化的列表中的错误,你需要实例与列表中的属性时,您可以在定义类的构造函数或之前指定的值

如果你想在构造函数

public CustomerModel() 
{ 
    this.CustomerResultModel = new List<CustomerModel>() 
} 
+0

谢谢!这工作! Btw。我是以标准方式进行上述操作,还是在模型中使用模型列表是一种愚蠢的做法? (用于客户结果列表) – stats101

+0

这完全取决于你想要达到的目标,现在它是多余的,创建了一个模型列表的属性,如果这是你可以在代码中没有麻烦的情况下处理的话,但是如果在你的查看出口的这个属性的需要,很好的使用它 – Jorge