ASP.NET MVC / C#:如何显示属于另一个控制器的部分视图数据
ASP.NET MVC / C# : how to display partial view data that belongs to another controller
我有一个名为 BlogsCategory.cshtml 的视图,它属于 CategoryController。当前在此视图上,页面按预期方式加载了我的博客类别列表。
除了已经加载的数据之外,我还希望能够在属于另一个名为 AdvertisementController 的控制器的同一视图 (BlogsCategory.cshtml) 上加载数据,该控制器的数据来自另一个名为 AdvertisementController 的 table tblAdvertisement.
我不想在 BlogCategories Table 和广告 Table 之间创建数据库关系,所以我想知道如何通过可以从AdvertisementController 在属于 CategoryController 的视图上。
我已尝试在该视图中添加此 @Html.Partial,但一直收到错误消息,指出以下错误。
@model List<Systex.Models.tblCategory>
@Html.Partial("~/Views/Advertisement/Horizontal1.cshtml")
System.InvalidOperationException: '传递到字典中的模型项是 'System.Collections.Generic.List`1[Systex.Models.tblBlogsCategory]' 类型,但是这个字典需要一个 'Systex.Models.tblAdvertisement' 类型的模型项。'
保存我要加载的那条数据的视图如下所示。这是我试图从 BlogsCategory.cshtml 视图调用的 AdvertisemenController 的视图。
Horizontal1.cshtml
@model Systex.Models.tblAdvertisement
//Display these 2 strings on the view called BlogsCategory.cshtml
@Model.BlogCategoriesListVerticalString1
@Model.BlogCategoriesListVerticalString2
如果您不想创建数据库关系(如果您使用的是 EFCore,我建议您这样做),那么您必须将一些识别信息(例如 ID)传递给控制器,然后查找数据以映射到视图模型。
我有一个名为 BlogsCategory.cshtml 的视图,它属于 CategoryController。当前在此视图上,页面按预期方式加载了我的博客类别列表。
除了已经加载的数据之外,我还希望能够在属于另一个名为 AdvertisementController 的控制器的同一视图 (BlogsCategory.cshtml) 上加载数据,该控制器的数据来自另一个名为 AdvertisementController 的 table tblAdvertisement.
我不想在 BlogCategories Table 和广告 Table 之间创建数据库关系,所以我想知道如何通过可以从AdvertisementController 在属于 CategoryController 的视图上。
我已尝试在该视图中添加此 @Html.Partial,但一直收到错误消息,指出以下错误。
@model List<Systex.Models.tblCategory>
@Html.Partial("~/Views/Advertisement/Horizontal1.cshtml")
System.InvalidOperationException: '传递到字典中的模型项是 'System.Collections.Generic.List`1[Systex.Models.tblBlogsCategory]' 类型,但是这个字典需要一个 'Systex.Models.tblAdvertisement' 类型的模型项。'
保存我要加载的那条数据的视图如下所示。这是我试图从 BlogsCategory.cshtml 视图调用的 AdvertisemenController 的视图。
Horizontal1.cshtml
@model Systex.Models.tblAdvertisement
//Display these 2 strings on the view called BlogsCategory.cshtml
@Model.BlogCategoriesListVerticalString1
@Model.BlogCategoriesListVerticalString2
如果您不想创建数据库关系(如果您使用的是 EFCore,我建议您这样做),那么您必须将一些识别信息(例如 ID)传递给控制器,然后查找数据以映射到视图模型。