从ASP.NET切换到面包和黄油HTML/jQuery的优势

Mar*_*tin 7 .net asp.net jquery web-services

我越来越厌倦了关于控制ID的所有怪癖,试图在服务器端获取数据(基于客户端事件).我似乎花了更多时间与asp.net中的控件进行斗争,我认为这比我使用它获得的时间更多.

我正在考虑使用简单的html/javascript和jQuery以及为数据返回json的Web服务.

我认为我唯一想念webforms的是MasterPages,会话管理,基于Windows登录的身份验证和可能的验证器(虽然它们也有一些怪癖).(事实上​​,也许不是会话和auth,但我从来没有开发过webservices)

  • 我正在考虑这个问题的方式有什么问题,或者我没有想到的事情?
  • asp.net中有什么东西你认为我会想念吗?
  • 有没有人以前做过这个并希望分享经验?

请注意,我只有Framework 2.0可用于开发.


编辑:在asp.net中让我烦恼的事情让我对这个开关感到奇怪:

这是一个给我提问的页面示例.

有一张树桌(主/细节)

您可以编辑每个子行的字段.

当您按下保存按钮时,必须更新来自组行的数据(仅来自选择的数据,而不是数据库中的修改)作为子行中的数据.

我不想刷新整个页面,因为显示的记录来自搜索标准.

使用中继器生成主/详细信息

尝试从后面的代码更新记录非常古怪,并且仍然没有关于更新显示的线索.

使用jQuery和Web服务,我的猜测是我可以直接更新到数据库,请求我想要显示的内容并只更新该记录.这种事情让我想知道asp.net是否只是阻碍了我.


 ________________________________________________________________________
| -  Some             Details           About            Group           |
|________________________________________________________________________|
    |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
    | ChildRecord Some  Editable  Fields       SaveButton   |
    | ChildRecord Some  Editable  Fields       SaveButton   |
    | ChildRecord Some  Editable  Fields       SaveButton   |
    | ChildRecord Some  Editable  Fields       SaveButton   |
    |_______________________________________________________|
 ________________________________________________________________________
| +  Some             Details           About            Group           |
|________________________________________________________________________|
 ________________________________________________________________________
| +  Some             Details           About            Group           |
|________________________________________________________________________|


Edit2: 我对ASP.NET的问题与ajax无关.是的,我使用jQuery使界面更加动态,就像在不需要时显示/隐藏搜索部分一样,并从树中折叠细节,但这就是我用它做的全部.

困扰我的是,如果我想检查在这个例子中点击了哪个按钮,我必须使用一些感觉有点蠢的技巧.

如果要在转发器中使用数据绑定组合框,则必须使用代码隐藏来设置所选值,从而无法检索所选数据.

接下来,如果要检查修改了哪些数据,则必须将数据表保存在视图状态中,从转发器中的所有控件读取数据,然后与数据表进行比较以进行更新.这就是用asp.net打扰我的事情.

RSo*_*erg 5

如果使用得当,ASP.NET和JavaScript/jQuery Web应用程序确实可以相互补充.我现在已经在3个不同的Web应用程序中实现了jQuery,我很喜欢它的每一分钟.只要你使用每个组件的力量,你最终会对项目感到满意.

你特别提到控制ID引起了一个问题,但它真的没什么大不了的.

JavaScript的

document.getElementById("<%=this.MyObject.ClientID %>");
Run Code Online (Sandbox Code Playgroud)

jQuery的

$("#<%=this.MyObject.ClientID %>")....
Run Code Online (Sandbox Code Playgroud)

在您的父子关系示例中,您可以非常轻松地使用UpdatePanels处理与ASP.NET和AJAX框架讨论的内容.


Paw*_*iak 4

您不必放弃一切,例如 MasterPages。您可能会尝试关闭 ViewState、关闭 EventValidation 并使用尽可能少的 ASP.NET 控件(基本上 - 如果可以使用 XHTML 轻松实现某些功能,请将其编写为 XHTML)。您仍然可以在需要的地方使用 ASP.NET 控件。

我认为你并不孤单。使用 WebForms 两年后,我也厌倦了它们,在我发现 jQuery 有多棒以及它与 Web 服务配合得有多好之后,我极大地改变了我的开发模式。我现在正在慢慢转向 MVC,因为我发现它是最终的解决方案,但对于其他一些应用程序(小型和/或目标为 2.0),我只是尝试使用更少的服务器控件,摆脱 ViewState,使用更多的 AJAX(Web 服务) )。效果很好。我推荐 Dave Ward 的Encosia - 从这篇文章开始。我承认它让我看到了使用 .NET Framework 开发 Web 应用程序的其他一些方法。祝你好运!