2012-05-09 4 views
0

Мои знания .Net не хватает. Любая помощь в дальнейшем будут оценены:Поиск записей с Entity Framework и 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

Спасибо! Это сработало! КПП. Я делаю это стандартным образом или имею список моделей в модели, это глупый способ сделать это? (для списка результатов клиента) – stats101

+0

Это полностью зависит от того, чего вы хотите достичь, теперь оно избыточно создает свойство списка модели, если это то, с чем вы могли бы справиться без проблем в своем коде. Но если в вашем просмотреть выход, нужно иметь этот атрибут, хорошо использовать его – Jorge

Смежные вопросы