ASP.NET模型不会加载我的存储库

时间:2017-09-29 15:17:52

标签: asp.net asp.net-mvc

当我尝试将我的存储库加载到我的视图中时

@model BlueRateITRepositories.Repository.FilmRepository;
@{
    ViewBag.Title = "Films";
}

<h2>Films</h2>

模型给出错误“'FilmRepository'是在给定上下文中无效的类型”

控制器代码

FilmRepository FilmRepository = new FilmRepository();

// GET: Film
public ActionResult Films()
{
    return View(FilmRepository);
}

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

你正在犯这个错误。您不应将存储库类传递给视图。视图应该接受他们需要的信息并显示它。

更改您的控制器:

FilmRepository filmRepository = new FilmRepository();

public ActionResult Films()
{
    List<Film> films = filmRepository.GetFilms();
    return View(films);
}

然后你的视图应该显示电影:

@model IEnumerable<BlueRateITRepositories.Models.Film>
@{
    ViewBag.Title = "Films";
}

<h2>Films</h2>
@foreach(var film in Model)
{
    <p>@film.Name</p>
}

相应地调整项目的类和方法名称。

答案 1 :(得分:0)

删除模型声明末尾的分号。并且,正如@shyju建议的那样,尝试将对象名称保留在与类名称不同的大小写中。

模型声明应为 -

<namespace>.ClassName

让我知道它是否有效。