繁体   English   中英

在index.cshtml页面上是Create.cshtml吗?

[英]Create.cshtml on the index.cshtml page?

我用.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

如果您在具有不同模型的父页面中使用PartialView,则必须将其他模型传递给Html Helper,如下所示:

@Html.Partial("Create", new Klotterplank.Models.Board())

该错误几乎可以说明一切:实例化部分视图时,它会获取父视图的ViewData dictionary的副本 您的“ Create视图需要不同类型的数据,因此您可以像这样提供数据:

@Html.Partial("Create", viewModel)

viewModel可以等于Model.Fist() (因为在Index视图上,您​​有一组木板作为模型)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM