Обработка неверного запроса внутри действия - PullRequest
0 голосов
/ 20 декабря 2018

Это мое первое приложение в MVC.

Я хочу проверить, имеет ли значение свойства списка с именем movies объекта модель или нет.Так что, если пользователь пытается найти детали фильма и этот фильм не существует, он должен получить ошибку.

Допустим, в списке фильмов есть данные только для двух фильмов, но пользователь пытается получить доступ: / Movie / Details / 3 или / Movie / Details / abc

Я хочу обработать такие недействительные запросы.

MovieController

public class MovieController : Controller
{
    MovieCustomerViewModel model = new MovieCustomerViewModel();

    // GET: Movie
    public ActionResult Index()
    {
        model.movies = new List<Movie>
        {
            new Movie{id=1,name="Shrek"},
            new Movie{id=1,name="Wall-e"}
        };
        return View(model);
    }


    public ActionResult Details(int? id)
    {
        if (id < 1 || id > 2 || !id.HasValue || model.movies.Count==0)
            return HttpNotFound();
        else
            return View();
    }

}

Одним простым способом является использование свойства List Count , но при этом выдается NullReferenceException .

enter image description here

Это говорит мне, что модель была восстановлена ​​и значения, присвоенные в Индекс ограничивается только этим действием.Как новичок, я не понимаю, что делать тогда ..

-Я могу использовать конструктор для присвоения значений, но я не уверен в этом.Это хороший подход?

-Можно ли решить эту проблему с помощью атрибутов маршрута?

-Мне что-то не хватает в атрибутах действия или атрибутах маршрута на данном этапе обучения?

Заранее спасибо.

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