我有以下操作方法来构建下拉列表,该列表用于搜索具有特定国家/地区的记录。除了显示所有国家/地区的列表外,我还添加了一个名为-Any-的静态值,它将返回所有记录,无论其国家/地区如何,如下所示:
public PartialViewResult ManageVisitSearch()
{ var CountryList = repository.FindAllCountry().ToList();
CountryList.Insert(0, new Country { Description = "--Any--", CountryID = 0 });
//code goes here
ViewBag.CountryID = new SelectList(CountryList, "CountryID", "Description", 0);
return PartialView("_ManageVisitSearch"); }
在将执行搜索的存储库方法中,如果从下拉列表中选择了-Any-,我会执行以下操作以返回所有记录:
public IEnumerable<VisitSearch> visitsearch(DateTime? datefrom, DateTime? dateto, int countryid, int genderid)
{
var vs = (from v in entities.Visits where
(v.Patient.NationalityID == countryid || countryid == 0)
//code goes here
上述方法对我很好,但我认为这可能不是最好的方法。是否有更合理的方法可以将-Any-添加到我的搜索下拉列表中,或者我的方法听起来不错?
答案 0 :(得分:0)
public IEnumerable<VisitSearch> visitsearch(DateTime? datefrom, DateTime? dateto, int? countryid, int genderid)
{
var vs = entities.Visits;
if(countryid.HasValue)
vs = vs.Where(v.Patient.NationalityID == countryid.Value);
return vs;
}
您可以根据某些条件添加where子句来构建查询。