0

我越来越不喜欢服务器控制的这个长ID......

但我认为在代码隐藏中生成它的另一种方法不是 asp.net 的简单事物的意义,是吗?

那么您自己更喜欢这种方法吗?明年我要在公司做大中型项目,这就是我问的原因。我自己来自 PHP,同时通过干净的源代码记住我会生病 :)

事实上,我使用 asp.net webforms 很容易在短时间内开发出很酷的解决方案。在对 MVC 的一些印象之后,我不确定是否也可以通过这种方式。

4

4 回答 4

2

我和你有同样的感觉,但我选择和丑陋的身份相处。

不过有两个不错的选择。

  • ASP.NET MVC

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

于 2010-01-20T13:01:51.313 回答
1

这是从 ASP.NET Webforms 切换到ASP.NET MVC的最大原因之一。你可以用 WebForms 做很多事情来缓解这个不会被认为是 hack 的问题(出于这个原因,我当然已经在某些地方对它进行了 hack)。

于 2010-01-20T13:03:22.183 回答
1

通常,您不希望在 CodeBehind 中生成控件,因为它使视觉布局更加困难。不过,有几件事要记住。

首先,在 CodeBehind 中创建控件并不难,但它的成本超出了 UI 布局。也就是说,当您重新访问一个页面并且必须弄清楚从哪里来的时候,成本就会出现。如果您不小心,在 CodeBehind 中执行操作可能会绊倒您。

其次,如果您能够保持足够的灵活性以跳转到 ASP.NET 4.0,那么您的挫败感将是短暂的,因为 4.0 为您提供了一种定义客户端 ID 的方法。

第三,MVC 是一种替代方案,但除非您真的刚刚开始,否则我会犹豫不决。对于习惯于 WebForms 开发的人来说,MVC 在生产力方面存在重大缺陷。我在这里详细讨论了这个问题。

现在,如果您需要从 Javascript/JQuery 引用控件,则必须处理复杂的 ID。在大多数情况下,这是一个相对有限的问题,并且一旦您迁移到 4.0,它就会再次消失。然而,MVC 是一项重大承诺:一种不同的思维方式,如果您习惯于 WebForms 开发,它会从您的工具带中删除一些非常高效的工具。采用它的主要原因 - 添加其他工具,例如简单的 JQuery 集成 - 也被 .NET 4 的变化削弱了。 最后,与其说决定哪个“最好”不如说是决定关于哪个适合您的发展风格和敏感性。

祝你好运!

PS:您知道您现在可以获得 .NET 4/Visual Studio 2010,对吧?它已经为可部署的项目做好了充分的准备,并且代表了 VS 2008 的重大进步。

于 2010-01-20T13:23:40.890 回答
0

我偶然发现了这一点,我认为这可能与此有关。

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;
    }
}
于 2010-03-18T12:33:31.933 回答