处理动作内的无效请求

时间:2018-12-20 18:58:07

标签: c# asp.net-mvc model-view-controller controller routes

这是我在MVC中的第一个应用程序。

我想检查对象 model 的名为 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

这告诉我模型已重新实例化,并且 Index 中分配的值仅限于该操作。作为初学者,我不知道该怎么办。

-我可以使用构造函数来分配值,但是我不确定。这是个好方法吗?

-使用Route属性可以解决此问题吗?

-在学习的这个阶段,我是否缺少有关动作属性或路线属性的信息?

谢谢。

0 个答案:

没有答案