如何从MVC部分视图检索数据
本文关键字:视图 检索 数据 MVC | 更新日期: 2023-09-27 18:26:57
我无法从mvc部分视图中检索数据。下面是部分视图:
_myPartialView.cs.html
@{
ViewBag.Title = "_Header";
var viewDataProduct = Session["ProductDetails"] as Data.DataAccess.Product;
}
<header>
<div style="top:25px;left:200px; background-color:#2d2d2d; color:#fff;font-size:20px;padding:5px;">
Product: <span>viewDataProduct.Name</span>
</div>
</header>
下面是使用上面部分视图的视图。我想在下面的视图(ProductView.cs.html)中检索viewDataProduct.Details。
ProductView.cshtml
<body>
@Html.Partial("_myPartialView")
<div id="parentDiv">
<div id="childDiv">
Product Details: <span> viewDataProduct.Details </span>
</div>
</div>
</body>
谢谢你的帮助!
将同一块添加到父视图中,不是从视图中检索数据,而是从会话中检索数据。
@{
var viewDataProduct = Session["ProductDetails"] as Data.DataAccess.Product;
}
<body>
@Html.Partial("_myPartialView")
<div id="parentDiv">
<div id="childDiv">
Product Details: <span> @viewDataProduct.Details </span>
</div>
</div>
</body>
正如Stephene Muecke提到的,尽管你可能不想做两次。我建议重新设计你的分部,以获得一个模型,然后将该模型从父级传递到分部,可能也不会将其存储在会话中,但可能还有其他设计限制因素影响你这样做的决定。
由于您的数据处于会话中,您也可以在ProductView.cshtml中获取ProductDetails,并将值传递给分部视图。
@Html.Partial("_myPartialView",@viewDataProduct) // replace in main view
// partial view
@model Data.DataAccess.Product
@{
ViewBag.Title = "_Header";
}
<header>
<div style="top:25px;left:200px; background-color:#2d2d2d; color:#fff;font-size:20px;padding:5px;">
Product: <span>@Model.Name</span>
</div>
</header>