为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
繁星coding 2023-07-22 16:10:56
无法将部分视图与模型一起使用。我创建了一个名为的新 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”的模型项。”
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

您的分部视图需要 TestPartialViewModel 类型的模型,但在从 _layout.cshtml 引用分部视图时没有指定,因此页面默认将父 ViewModel 发送到您的分部视图,这会导致您遇到的错误。

修理

只需从 _layout.cshtml 引用您的部分视图,并传递预期模型,如下所示

@await Html.PartialAsync("~/Views/Shared/PartialViews/TestPartialView.cshtml", 
              new TestPartialViewModel())


查看完整回答
反对 回复 2023-07-22
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

看来您已尝试构建一个 NewRazor Page来用作新的部分视图。

分部视图没有关联的PageModel类 ( .cshtml.cs)。部分视图只是在 Razor 标记 ( ) 中创建的视图.cshtml

请参考这个例子:强类型部分。它简洁地显示了Razor Page将数据作为模型传递给partial view渲染。


查看完整回答
反对 回复 2023-07-22
  • 2 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信