【问题标题】:How to pass data from child action to layout in ASP.NET MVC如何在 ASP.NET MVC 中将数据从子操作传递到布局
【发布时间】:2013-11-05 13:09:40
【问题描述】:

我有一个使用布局的视图,并且还执行子操作。

布局调用部分视图的子操作需要一些数据。有没有办法将数据从子操作传递到其父视图的布局?

我尝试使用部分来解决这个问题,但似乎部分只能在布局视图中呈现。

【问题讨论】:

  • 您的子视图返回了什么? json还是html?
  • 子操作正在返回 HTML。
  • 有很多方法可以做到这一点.. 1-您可以调用 $.ajax 调用子操作并显示您想要显示的位置。使用 jquery 选择器。

标签: asp.net-mvc child-actions


【解决方案1】:

最后,我让子操作将所需数据填充到 HttpContext 中。然后由包含子操作的视图读出,并使用它在布局中呈现一个部分。

我担心视图的处理顺序是不可预测的(即我不能确定数据是否会在被读取之前写入 HttpContext),但事实证明是处理是完全可预测的。

【讨论】:

    【解决方案2】:

    在您的子操作中,您可以将数据设置为 data-*** 属性,然后使用 JavaScript(或 jQuery)在您的部分中读取它们。

    例如子动作:

    <div id="somedata" data-customerid="123" data-reference="xyz">
    </div>
    

    然后在你的部分:

    <script> 
       ....
       var customerId = $("#somedata").data("customerid");
       var reference = $("#somedata").data("reference");
    </script>
    

    希望对你有帮助

    【讨论】:

    • 谢谢。这是一个有趣的建议,但理想情况下我正在寻找服务器端解决方案。
    猜你喜欢
    • 2017-02-06
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多