В моем контроллере этот метод действия называется " SearchForContact ", который принимает 2 строковых параметра firstName и LastName . Есть 3 ситуации:
Если оба параметра равны нулю, представление снова отображается с сообщением об ошибке, предлагающим пользователю ввести хотя бы один из 2 параметров
если оба параметра не равны NULL, я могу получить контакты и отобразить результат на виде
- К сожалению , когда любой из параметров равен нулю, я ничего не получаю. Я подозреваю, что я не правильно написал мои заявления Linq .
вот оператор, который обрабатывает поиск:
var contacts = contactRepository.SearchForContacts(firstName, lastName).ToList();
Вот мои вспомогательные методы, расположенные в моем классе репозитория (ContactRepository.cs), расположенном в папке моделей.
public IQueryable<Contact> SearchForContacts(string firstName, string lastName)
{
if (firstName == null)
return OneCriteria(lastName);
if (nom == null)
return OneCriteria(firstName);
else
return TwoCriteria(firstName, lastName);
}
private IQueryable<Contact> OneCriteria(string criteria)
{
var contacts = from contact in db.Contacts
where ((contact. firstName == criteria) ||
(contact. lastName == criteria))
orderby contact. firstName
select contact;
return contacts;
}
private IQueryable<Contact> TwoCriteria(string firstName, string lastName)
{
var contacts = from contact in db.Contacts
where ((contact. firstName == firstName) &&
(contact. lastName == lastName))
orderby contact. firstName
select contact;
return contacts;
}
Спасибо за помощь