【发布时间】:2016-10-05 09:22:15
【问题描述】:
我已经使用 .net 渲染了一个 CRUD,并且在同一文件夹中有以下文件。
Create.cshtml、Delete.cshtml、Details.cshtml、Edit.cshtml、Index.cshtml
现在是在索引页面上创建新记录的链接
@Html.ActionLink("Create New", "Create")
但我希望创建表单在索引页面上。
我测试使用PartialView(我不知道是从index.cshtml中的create.cshtml复制代码还是使用两个文件更好,但我得到了同样的错误)。
将控制器中的return更改为return PartialView(board);
还有@Html.Partial("Create")的视图
但是我得到了编译错误
传入字典的模型项是类型 'System.Collections.Generic.List`1[Klotterplank.Models.Board]',但是 这个字典需要一个类型的模型项 'Klotterplank.Models.Board'。
这是我在 index.cshtml 中使用的模型
@model IEnumerable<Klotterplank.Models.Board>
这是我在 create.cshtml 中使用的模型
@model Klotterplank.Models.Board
【问题讨论】:
-
您需要一个视图模型,其中包含您编辑的
Board的每个属性的属性,以及现有Board的集合属性 - 请参阅What is ViewModel in MVC? -
也许你可以尝试使用这个部分overload并相应地传递
Board实例。 -
使用partial的问题是提交会出现问题,需要返回视图,因为
ModelState无效
标签: c# asp.net-mvc asp.net-mvc-4 razor