asp.net - 如何从 .aspx 页面检索查询字符串值并将其传递到 ascx 页面

标签 asp.net .net vb.net user-controls request.querystring

是否可以从 aspx 文件的 Request.QueryString 检索 ID 值并将其传递到 ascx 文件,以便使用检索到的 ID 成功更新配置文件?

最佳答案

通常,如果某个内容位于 UserControl 中,则可能是因为该控件中的功能足够重要,可以分解为它自己的可重用容器,该容器可以在另一个页面上重用。如果该控件实际上要在另一个页面上重用,那么它确实不应该引用查询字符串参数,因为该控件不应该假设它所在的页面。如果该控件包含在查询字符串参数名称不同的另一个页面上怎么办?或者也许在另一个页面上该值将来自数据库或 ViewState 或者将以某种方式自动确定?所以我的一般规则是,如果您要创建一个 UserControl,永远、永远、永远不要对它所在的页面做出任何假设。

就像大多数人所说的那样,您仍然可以从 UserControl 内部访问 Request.QueryString 属性,但这可能不是最好的主意。在由容器页面设置的控件上创建一个属性是一个更好的主意。

我认为最好的想法,也是我几乎总是做的,是在控件上创建名为 LoadData (或类似的东西)的方法,并为您需要的所有查询字符串值提供参数。这样,您就拥有该数据的单个入口点,因此很清楚这些值在什么时候被设置以及它们将被设置为什么。如果您走属性路线,总是会担心是否所有属性都已设置,以及它们是否在页面生命周期的正确位置设置(在回发期间可能会变得棘手)

关于asp.net - 如何从 .aspx 页面检索查询字符串值并将其传递到 ascx 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6621703/

相关文章:

c# - Visual Studio 2008 : is there any way to turn on the Class Name/Method Name drop downs in C#?(就像 VB.Net 一样)

asp.net - React useState 崩溃

c# - 有什么方法可以使用 .NET 应用程序来处理 git 吗?

vb.net - 我可以简化这个 VB.net 代码,这样我就不必重复那么多吗?

c# - 使用 String.Format 为所有占位符指定小数位

c# - 如何更改分配给事件的方法?

vb.net - 在vb.NET中替换文件中的 'bel'字符

javascript - 如何从代码隐藏中更改页面的缩放级别?

.net - ASP.NET ListView - 渲染 THEAD/TBODY 标签

c# - 如何使用 ASP.NET MVC5 将 ErrorCode 转换为字符串?