[英]ASP .NET Core 5 Razor Pages: how to properly use Partial View and validate it's model state?
[英]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'的模型项。”
您的局部视图需要一个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 view
的Razor Page
。
您也可以随时在ASP.NET Core Docs上找到更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.