Как получить данные из формы для привязки модели в AspnetCore-MVC - PullRequest
0 голосов
/ 21 сентября 2019

Я хочу сделать фильтр поиска в aspnet core mvc.У меня есть модель запроса и классы привязки модели запроса, как показано ниже.

 public class ListCoursesRequestModel
    {
        public string SearchFilter { get; set; }
    }
public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            var model = new ListCoursesRequestModel()
            {
                SearchFilter = bindingContext.ActionContext.HttpContext.Request.Query["q"]
            };

            bindingContext.Model = model;

            return Task.CompletedTask;
        }

У меня есть форма поиска ниже.

<form asp-action="Index" method="get">
        <div class="form-group">
            <input name="q" type="text" />
            <input type="submit" value="Filter" class="btn btn-sm btn-outline-secondary mb-1" />
        </div>
    </form>

, и это мой контроллер

public async Task<IActionResult> Index([ModelBinder(typeof(ListCoursesRequestModelBinder))]ListCoursesRequestModel request)
        {
            var model = await _courseService.GetListViewModelAsync(request);

            return View(model);
        }

В контроллере у меня есть метод GetListViewModelAsync ниже

public async Task<ListCoursesModel> GetListViewModelAsync(ListCoursesRequestModel request)
        {
            var query = _dbContext.Courses.AsNoTracking();

            if (!string.IsNullOrWhiteSpace(request.SearchFilter))
            {
                query = query.Where(e =>
                    e.CourseTitle.Contains(request.SearchFilter) ||
                    e.CourseCode.Contains(request.SearchFilter) ||
                    e.CourseDescription.Contains(request.SearchFilter));
            }

            return new ListCoursesModel
            {
                Courses = await query.ToListAsync()
            };
        }

Я запрашиваю данные в GetListViewModelAsync, но когда я запускаю программу, я вижу эту ошибку

Произошло необработанное исключение, когдаобработка запроса.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.

Как получить данные из моей формы в контроллер.

Спасибо ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...