我使用.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
答案 0 :(得分:0)
如果在具有不同模型的父页面中使用PartialView,则必须将不同的模型传递给Html Helper,如下所示:
@Html.Partial("Create", new Klotterplank.Models.Board())
答案 1 :(得分:0)
错误本身就说明了:When a partial view is instantiated, it gets a copy of the parent view’s ViewData dictionary。您的Create
视图需要不同类型的数据,因此您可以像这样提供:
@Html.Partial("Create", viewModel)
viewModel
可以等于Model.Fist()
(例如,因为在Index
视图中,您有一组电路板作为模型)。