【发布时间】:2010-02-25 09:48:31
【问题描述】:
我在一个视图页面中有 2 个用户控件 (ascx) 实例。
我在用户控件中设置了 ViewData["xyz"] = "True"。
第一个实例会将 ViewData["xyz"] 设置为 "True"。但是,这个相同的值不会保留在用户控件的第二个实例中。
我期待 ViewData["xyz"] 仍然是“True”,但它为空。
请帮忙。
在用户控件之间共享变量的最佳方式是什么?
【问题讨论】:
标签: asp.net-mvc
我在一个视图页面中有 2 个用户控件 (ascx) 实例。
我在用户控件中设置了 ViewData["xyz"] = "True"。
第一个实例会将 ViewData["xyz"] 设置为 "True"。但是,这个相同的值不会保留在用户控件的第二个实例中。
我期待 ViewData["xyz"] 仍然是“True”,但它为空。
请帮忙。
在用户控件之间共享变量的最佳方式是什么?
【问题讨论】:
标签: asp.net-mvc
任何逻辑都应该在控制器内完成。用户控件(视图、部分视图)不应具有需要将数据放入 ViewData 集合的逻辑。视图仅用于演示。
【讨论】:
也许你可以做((ViewPage)Page).ViewData["whatever"] = "value";
一个更好的主意可能是不需要用户控件之间的共享状态,
【讨论】: