Я слежу за серией YouTube, в которой рассказывается о ASP.NET MVC. В этом уроке учитель показывает, как сделать простую функцию поиска, однако в моем случае это не так.
У меня есть критерии поиска: Исследования (раскрывающийся список), Страна (раскрывающийся список), Статус (раскрывающийся список) и ключевое слово (вход ).
Мой вопрос: как мне запросить базу данных, чтобы показать результаты в зависимости от выбранных критериев поиска?
Для большей ясности :
Если пользователь выбрал только Исследования и Страна , тогда для поиска в соответствующем столбце базы данных в коде должны использоваться значения из Исследования и Страны.
Нажмите здесь для дизайна пользовательского интерфейса
Таблица : Студенты
[StudentID] INT IDENTITY (1, 1) NOT NULL,
[StudentName] VARCHAR (50) NOT NULL,
[StudentStudiesID] INT NOT NULL,
[StudentCountry] VARCHAR (50) NOT NULL,
[StudentCity] VARCHAR (50) NOT NULL,
[StudentStatus] VARCHAR (50) NOT NULL,
CONSTRAINT [PK_Students] PRIMARY KEY CLUSTERED ([StudentID] ASC),
CONSTRAINT [FK_Students_Studies] FOREIGN KEY ([StudentStudiesID]) REFERENCES [dbo].[Studies] ([StudiesID])
SearchController.cs
public class SearchController : Controller
{
public ActionResult Index()
{
DatabaseEntitiesModel db = new DatabaseEntitiesModel();
int Studies;
int.TryParse(Request.QueryString["Studies"], out Studies);
var Country = Request.QueryString["Country"];
var Status = Request.QueryString["Status"];
var Keyword = Request.QueryString["Keyword"];
IQueryable <Student> SearchQuery = db.Students;
List<SearchViewModel> SVM = SearchQuery.Select(x => new SearchViewModel
{
StudentID = x.StudentID,
StudentName = x.StudentName,
StudentCountry = x.StudentCountry,
StudentCity = x.StudentCity,
StudiesName = x.Study.StudiesName,
StudentStatus = x.StudentStatus
}).OrderByDescending(x => x.StudentID).ToList();
return View( SVM );
}
}