我试图在一个模型的索引视图中工作,让我们称之为Table1。在表1中,有一个ID链接到另一个表/模型,Table2。我想在Table1的索引视图中显示文本而不是Table2的ID,但是,Table2的主要信息由其他表中的两个IDS以及Table3和Table4组成,所以我需要获取文本来自表3和表4的实际描述。
执行此操作的唯一方法是通过存储过程吗?我在想是的。但是,我需要它来为我的桌子上的每个循环。因此,如果页面最初包含Table2的ID,我可以将其传递给局部视图并操纵表格内容吗?
所以我想的是:
<table>
foreach (var item in Model) {
<tr>
@RenderPage("_PartialView.cshtml")
<td>@item.Cotent</td>
</tr>
}
</table>
基本上我的问题归结为,主视图上的foreach循环会导致部分视图迭代,从而显示多条记录吗?
更新:所以我尝试的不起作用。我会尝试更好地解释我的问题。所以我的第一个模型,即我正在使用的视图,让我们称之为餐厅,包含我的第二个模型的ID,让我们称之为塔可即可。我的 Taco 模型没有真正的字符串描述,只有来自我的其他两个模型的ID,让我们说生菜,还有番茄 。我需要访问生菜和番茄中的说明,只需在表格中将其显示在我的餐厅视图中一个<td></td>
作为表格中的项目。我不确定如何实现这样做的方法。在我的编辑视图中,我创建了一个下拉菜单,该菜单使用生菜和番茄中的描述,并使用 Taco中的ID table来组成下拉列表中的Taco对象。
答案 0 :(得分:0)
首先回答上面的问题,主视图上的foreach循环会导致局部视图迭代,从而显示多条记录吗?
是的,它将根据您的表格迭代每个内容的部分视图。此外,您还可以将数据传递给@RenderPage()并使用页面属性
访问它例如:
@RenderPage("~/Views/Shared/_PartialView.cshtml", new { User = Model })
@foreach (var user in Page.User)
{
<text>
@user.UserName @user.UserPassword <br />
</text>
}
官方定义:在另一个页面中呈现一个页面的内容。
https://msdn.microsoft.com/en-us/library/system.web.webpages.webpagebase.renderpage(v=vs.99).aspx
希望以上信息有用,请告诉我您的想法或反馈
由于
KARTHIK
答案 1 :(得分:0)
以下是如何添加其他参数的示例,并切换到RenderPartial
调用以将其他ID传递到部分视图中。
<table>
@foreach (var item in Model) {
<tr>
@Html.RenderPartial("_PartialView.cshtml", new { Table2ID = item.Table2ID })
<td>@item.Content</td>
</tr>
}
</table>
希望这有帮助!