Asp .net Core:如何在 Razor Pages 的部分视图中使用模型?

无法将部分视图与模型一起使用。

我创建了一个名为的新 WebApplicationWebApplication1

我创建了一个TestPartialView在共享文件夹内命名的部分视图。

在该TestPartialView.cshtml.cs文件中,我创建了一个名为的方法GetMyString(),该方法返回一个字符串。

我正在文件@Model.GetMyString()内部使用TestPartialView.cshtml

<partial name="TestPartialView" />我已在_Layout页面下方包含标签<partial name="_CookieConsentPartial" />

当我构建时没有错误。

但是当我运行它时,它给出了一个错误:

InvalidOperationException:传递到 ViewDataDictionary 的模型项的类型为“WebApplication1.Pages.IndexModel”,但此 ViewDataDictionary 实例需要类型为“WebApplication1.Pages.Shared.TestPartialViewModel”的模型项。”


http://img2.mukewang.com/64bb8f2e0001056611320153.jpg

http://img1.mukewang.com/64bb8f3c0001dd2805830374.jpg

http://img3.mukewang.com/64bb8f480001d97906290405.jpg

繁星coding
浏览 132回答 2
2回答

偶然的你

您的分部视图需要 TestPartialViewModel 类型的模型,但在从 _layout.cshtml 引用分部视图时没有指定,因此页面默认将父 ViewModel 发送到您的分部视图,这会导致您遇到的错误。修理只需从 _layout.cshtml 引用您的部分视图,并传递预期模型,如下所示@await&nbsp;Html.PartialAsync("~/Views/Shared/PartialViews/TestPartialView.cshtml",&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;TestPartialViewModel())

慕标琳琳

看来您已尝试构建一个 NewRazor Page来用作新的部分视图。分部视图没有关联的PageModel类 ( .cshtml.cs)。部分视图只是在 Razor 标记 ( ) 中创建的视图.cshtml。请参考这个例子:强类型部分。它简洁地显示了Razor Page将数据作为模型传递给partial view渲染。
打开App,查看更多内容
随时随地看视频慕课网APP