Как получить в представлении IQueryable<>?

202
14 ноября 2021, 15:50

Я пробовал писать вот так

@model IQueryable<MvcMovie.Models.Movie>

Но получаю исключение

InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable1[<>f__AnonymousType02[System.String,System.String]]', but this ViewDataDictionary instance requires a model item of type 'System.Linq.IQueryable`1[MvcMovie.Models.Movie]'.

Вот код контроллера:

public async Task<IActionResult> Search(string searchString)
    {
        var MovieQuery =
            from movie in db.Movie
            where movie.Title.Contains(searchString)
            select new { movie.Title, movie.Genre };
        return View(MovieQuery);
    }
Answer 1

Тип значения, возвращаемого из контроллера должен совпадать с типом, ожидаемым моделью.

Добавьте новый тип модели, для этого конкретного представления, с полями Title и Genre.

// назовите на свой вкус
public class MovieInfo
{
    public string Title {get;set;}
    public string Genre {get;set;}
}

В контроллере создавайте экземпляр этой модели вместо анонимного типа.

... select new MovieInfo { Title = movie.Title, Genre = movie.Genre };
return View(MovieQuery.ToList()); // выполняйте запрос до передачи его в представление
READ ALSO
Как подключить Dependencies к NuGet в проекте?

Как подключить Dependencies к NuGet в проекте?

Подскажите, пожалуйстаКак подключить Dependencies к NuGet в проекте? NuGet создавал, как описано в доках майкрософт Создание и публикация пакета NuGet с помощью...

119
Почему не работают события нажатия мышки в Unity

Почему не работают события нажатия мышки в Unity

Использую функцию OnMouseDown и OnMouseUp, пишу DebugLog, а ничего не выводится

210
Выполнение функции по таймеру

Выполнение функции по таймеру

Как можно сделать выполнение функции по таймеру? При этом нужно передавать в функцию несколько аргументов

182
Не обновляется свойство класса

Не обновляется свойство класса

Только сейчас заметил, что C# не обновляет свойства классов, в реальном времениЕсть свойство в классе Str:

148