【问题标题】:Passing data to Layout Razor Pages without controller在没有控制器的情况下将数据传递给 Layout Razor Pages
【发布时间】:2019-05-22 22:38:09
【问题描述】:

我想在我的布局页面中可视化来自我的模型的数据 - 特别是当用户将商品添加到购物车时,我想计算购物车中的商品数量并将其显示在导航栏中的图像旁边购物车。

用户可以从超过 1 个页面添加产品(例如,从索引页面或产品/索引页面等)。

有人处理过类似的事情吗?

我希望我的导航栏看起来像这样:

导航栏

<div class="navbar-collapse collapse show" id="navbarColor01" style="">
    <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
            <a asp-page="/Index" class="nav-link" >Home <span class="sr-only">(current)</span></a>
        </li>
        <li>
            <a asp-page="/ShoppingCart/Index"> <i class="fas fa-shopping-cart fa-1x fa-cog "></i></a>
<div class="badge badge-danger badge-pill">5</div> //here is the number to be displayed
        </li>
    </ul>
</div>

【问题讨论】:

    标签: c# razor asp.net-core .net-core razor-pages


    【解决方案1】:

    有不同的方法来实现这一点,评估你的选择然后决定做什么。

    您可以通过以下方式实现:

    1. 使用查看包。这将导致整个项目的代码声誉。因为你要为每个页面访问设置视图包。
    2. 使用局部视图。通过调用Ajax 请求动作,然后返回局部视图。部分视图通常打算成为控制器/页面的一部分,从不同的控制器/页面拥有GetCart 是没有意义的。此外,最好避免视图声誉。
    3. 查看组件。这通常是理想的方法,因为您需要在幕后完成工作然后返回值。 View Components 可以独立存在,这对 SoC 有利。

    我个人的推荐是View Component,它是asp.net core 中的一个新特性(替代ChildAction)。

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      相关资源
      最近更新 更多