我的主要观点如下:
<div class="wellContainer" id="stockCardGroupContainer">
@Html.Action("_StockGroupMenu", new { stockGroupId = 1})
</div>
<div id="stockCardContainer" class="wellContainer">
@Html.Action("_Index", "WrhStockCard", new { stockGroupId = ViewBag.wrhRelatedStockGroupId })
</div>
以下是返回部分视图的方法。
public PartialViewResult _StockGroupMenu(int? id)
{
var wrhStockGroup = db.WrhStockGroup.Include(w => w.RelatedWrhStockGroup).Where(p => p.RelatedWrhStockGroupId == id);
ViewBag.wrhRelatedStockGroupId = id;
ViewBag.stockGroupName = db.WrhStockGroup.Find(id).Name;
return PartialView(wrhStockGroup.ToList());
}
public PartialViewResult _Index(int? stockGroupId)
{
var relatedStockCards = stockCardService.GetStockCardsByGroupId(stockGroupId);
ViewBag.stockGroupId = stockGroupId;
ViewBag.stockGroupName = db.WrhStockGroup.Find(stockGroupId).Name;
return PartialView(relatedStockCards);
}
情形是,当用户点击一个群组时,我需要显示股票卡&#34; stockCardContainer&#34;并且还显示了stockCardGroupContainer中的相关childGroupd。但是我在_StockGroupMenu方法中设置ViewBag.wrhRelatedStockGroupId但是不能将它传递给第二个@ Html.Action,因为它是不同的局部视图。
答案 0 :(得分:0)
有多种方法可以做到这一点。尝试使用TempData
- 它将保留下一个请求的数据,并自动清除。因此,在您的控制器操作中,对于您需要传递到另一个操作/部分视图的数据,将ViewBag
分配的行替换为以下内容:
TempData["wrhRelatedStockGroupId"] = id;
然后在下一个操作中阅读并将其放在ViewBag
或模型中。