【发布时间】:2019-10-12 19:16:21
【问题描述】:
我想创建一个关于电影的详细信息页面,但我遇到了这个错误,我有点卡住了。我收到无法转换类型错误。我确实了解该错误,但我不知道如何修复它。
这是索引,PAP 实体是数据库实例:
public class MoviesController : Controller
{
PAPEntities db = new PAPEntities();
public ActionResult Index()
{
MovieViewModel[] movies = db.MoviesData.Select(movie => new MovieViewModel
{
MovieID = movie.MovieID,
MovieName = movie.MovieName,
MovieDescription = movie.MovieDescription,
MovieCategory = movie.MovieCategory,
MovieYear = movie.MovieYear
}).ToArray();
return View(movies);
}
这是我现在的详细信息课程:
public ActionResult Details(int Id = 1)
{
MovieViewModel MovieVM = db.MoviesData.Find(Id);
return View(MovieVM);
}
我不断收到关于“db.MoviesData.Find(Id);”的错误
这是 MovieViewModel 代码:
public class MovieViewModel
{
public int MovieID { get; set; }
public string MovieName { get; set; }
public string MovieDescription { get; set; }
public string MovieCategory { get; set; }
public string MovieYear { get; set; }
}
这是剃须刀页面:
@model WebApplication3.Models.MovieViewModel[]
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Movies</h2>
<p>
@Html.ActionLink("Create New", "Create")
<table class="table table-bordered table-responsive table-hover">
<tr>
<th><b>Movie Name </b></th>
<th><b>Movie Category </b></th>
<th><b>Movie Year </b></th>
<th><b>Movie Description </b></th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.MovieID</td>
<td>@item.MovieCategory</td>
<td>@item.MovieYear</td>
<td>@item.MovieDescription</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.MovieID }) |
@Html.ActionLink("Details", "Details", new { id = item.MovieID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.MovieID })
</td>
</tr>
}
</table>
这是错误:
无法将类型“WebApplication3.Models.MoviesData”隐式转换为 'WebApplication3.Models.MovieViewModel'
MoviesData 是数据库的表
【问题讨论】:
-
请向我们展示剃须刀页面。
-
在
Index()中,您可以使用new MovieViewModel { ... }。您还需要在Details()中执行此操作。 -
@CodeNotFound 我用剃须刀页面回答了自己
-
@DiogoTeixeira 你应该删除。我在问题中添加了剃须刀视图:)
标签: c# sql-server asp.net-mvc razor