【发布时间】:2015-09-21 20:39:34
【问题描述】:
我想从我的 Index.cshtml 调用一个 PartialView,它使用不同的模型,我想调用 PartialView。
我的索引.cshtml
@model IEnumerable<myappname.Models.Post>
...
@Html.Partial("_Block")
_Block.cshtml
@model myappname.Models.RightBlock
<img src="@Model.blockContent" width="330" />
Controller.cs
...
public PartialViewResult _Block()
{
int id = 2;
RightBlock rb0 = db.RightBlocks.Find(id);
return PartialView(rb0);
}
...
请忽略 id,因为我只想静态调用它,而不是动态调用它。 当我运行索引页面时,我得到一个错误:
传入字典的模型项是类型 'System.Data.Entity.Infrastructure.DbQuery`1[myappname.Models.Post]', 但是这本字典需要一个类型的模型项 'myappname.Models.RightBlock'。
如何传递不同的模型来调用 PartialView? 谢谢。
【问题讨论】:
-
更容易的是你可以使用 ViewBag:@{RightBlock obj = ViewBag.RightBlock as myappname.Models.RightBlock;}
-
它在我使用时有效:'Html.Partial("_Block", new myappname.Models.RightBlock())' 但是当我再添加 2 个块时,索引页面有效但什么也不显示。来源是这样的: 。没有定义和渲染 src。
标签: c# asp.net-mvc-5 asp.net-mvc-partialview