代码之家  ›  专栏  ›  技术社区  ›  Marc

将控件生成到占位符中以避免“丑陋的”长控件客户端ID是否奇怪?[关闭]

  •  0
  • Marc  · 技术社区  · 16 年前

    我越来越不喜欢服务器控件提供的长ID…

    但另一种用codebehind生成它的方法,我认为这不是ASP.NET的简单意义,是吗?

    那么你更喜欢自己用这种方法吗?我明年要在公司创建大中型项目,这就是我问的原因。我自己来自于PHP,当我记住一个干净的源代码时,我会生病的:)

    实际上,我使用ASP.NET WebForms可以在短时间内轻松开发酷的解决方案。我不确定在对MVC有了一些印象之后,这种方式也可能实现。

    4 回复  |  直到 10 年前
        1
  •  1
  •   Community Mohan Dere    8 年前

    一般来说,您不希望在代码隐藏中生成控件,因为它使可视化布局变得更困难。不过,有一些事情需要牢记。

    首先,在codebehind中创建控件并不困难,但它的成本不仅仅限于UI布局。也就是说,当你重新访问一个页面时,成本会在后面出现,你必须弄清楚从哪里来的。如果你不小心的话,在代码隐藏中做一些事情会让你绊倒。

    第二,如果您能够保持足够的灵活性来跳转到ASP.NET 4.0,那么您的挫折将是短暂的,因为4.0为您提供了定义客户端ID的方法。

    第三,MVC是另一种选择,但我会犹豫是否要这样做,除非你真的刚刚开始。在用于WebForms开发的人员的生产力方面,MVC存在显著的缺点。我会详细讨论这个问题 here .

    现在,如果需要引用来自javascript/jquery的控件,则必须处理复杂的ID。在大多数情况下,这是一个相对局限的问题,而且,一旦你移动到4.0,它就会消失。然而,MVC是一个很大的承诺:一种不同的思维方式,如果你习惯于WebForms开发,它会从你的工具带中删除一些非常有成效的工具。采用它的主要原因是增加了其他工具,比如简单的jquery集成,也因为.NET 4的变化而降低了成本。 归根结底,这不是一个关于哪个是“最好的”的决定,而是一个关于哪个适合您的发展风格和敏感性的决定。

    祝你好运!

    附言:你知道你可以 get .NET 4/Visual Studio 2010 现在,对吧?它已经为可部署的项目做好了充分的准备,并且表示 重要的 从2008年开始。

        2
  •  2
  •   はると    16 年前

    我和你有着完全一样的感觉,但我选择和丑陋的身份证一起生活。

    不过,有两个好的选择。

    • ASP.NET MVC

    • 等待 ASP.NET 4 . 您可以设置一个选项,使您能够完全控制将在浏览器中打印的内容。

        3
  •  1
  •   Dave Markle    16 年前

    这是从ASP.NET Web窗体切换到 ASP.NET MVC . 对于WebForms,你不能做太多的事情来缓解这个问题,而这个问题不被认为是黑客攻击(我当然是出于这个原因在某些地方进行了黑客攻击)。

        4
  •  0
  •   はると    15 年前

    我偶然发现了这个,我想它可能和这个有关。

    http://www.west-wind.com/WebLog/posts/4605.aspx

    它将uniqueid和clientid都覆盖为id,这样更干净。

    public override string UniqueID
    {
        get
        {
            return this.ID;
        }
    }
    
    public override string ClientID
    {
        get
        {
            return this.ID;
        }
    }
    
    推荐文章