ASP.NET MVC For Each循环中的存储过程

时间:2017-05-30 18:25:35

标签: c# asp.net-mvc entity-framework razor asp.net-mvc-5

我试图在一个模型的索引视图中工作,让我们称之为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对象。

2 个答案:

答案 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>

希望这有帮助!