这是我在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 。
这告诉我模型已重新实例化,并且 Index 中分配的值仅限于该操作。作为初学者,我不知道该怎么办。
-我可以使用构造函数来分配值,但是我不确定。这是个好方法吗?
-使用Route属性可以解决此问题吗?
-在学习的这个阶段,我是否缺少有关动作属性或路线属性的信息?
谢谢。