如何从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>

谢谢你的帮助!

如何从MVC部分视图检索数据

将同一块添加到父视图中,不是从视图中检索数据,而是从会话中检索数据。

@{
    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>