繁体   English   中英

Asp .net Core:如何在Razor Pages的Partial View中使用模型?

[英]Asp .net Core : How can I use a model inside a Partial View in Razor Pages?

无法对模型使用部分视图。

我创建了一个名为WebApplication1的新WebApplication1

我在共享文件夹中创建了一个名为TestPartialView的局部视图。

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

我在TestPartialView.cshtml文件中使用@Model.GetMyString()

我在<partial name="_CookieConsentPartial" />下面的_Layout页面中包含了<partial name="TestPartialView" />标记。

当我建立时没有错误。

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

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

TestPartialView.cshtml

TestPartialView.cshtml.cs

_Layout.cshtml

您的局部视图需要一个TestPartialViewModel类型的模型,但是当您从_layout.cshtml引用局部视图时,您没有指定该模型,因此默认情况下该页面会将Parent ViewModel发送到局部视图,这会导致您遇到错误。

修理

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

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

您似乎已尝试将“新Razor Page设置为脚手架以用作新的局部视图。

局部视图没有关联的PageModel类( .cshtml.cs )。 局部视图仅是用Razor标记( .cshtml )创建的视图。

请参考以下示例: 强类型部分 它简洁地显示了将数据作为模型传递到要渲染的partial viewRazor Page

您也可以随时在ASP.NET Core Docs上找到更多信息。

暂无
暂无

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

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