是否可以从 aspx 文件的 Request.QueryString 检索 ID 值并将其传递到 ascx 文件,以便使用检索到的 ID 成功更新配置文件?
最佳答案
通常,如果某个内容位于 UserControl 中,则可能是因为该控件中的功能足够重要,可以分解为它自己的可重用容器,该容器可以在另一个页面上重用。如果该控件实际上要在另一个页面上重用,那么它确实不应该引用查询字符串参数,因为该控件不应该假设它所在的页面。如果该控件包含在查询字符串参数名称不同的另一个页面上怎么办?或者也许在另一个页面上该值将来自数据库或 ViewState 或者将以某种方式自动确定?所以我的一般规则是,如果您要创建一个 UserControl,永远、永远、永远不要对它所在的页面做出任何假设。
就像大多数人所说的那样,您仍然可以从 UserControl 内部访问 Request.QueryString 属性,但这可能不是最好的主意。在由容器页面设置的控件上创建一个属性是一个更好的主意。
我认为最好的想法,也是我几乎总是做的,是在控件上创建名为 LoadData (或类似的东西)的方法,并为您需要的所有查询字符串值提供参数。这样,您就拥有该数据的单个入口点,因此很清楚这些值在什么时候被设置以及它们将被设置为什么。如果您走属性路线,总是会担心是否所有属性都已设置,以及它们是否在页面生命周期的正确位置设置(在回发期间可能会变得棘手)
关于asp.net - 如何从 .aspx 页面检索查询字符串值并将其传递到 ascx 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6621703/