首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个巨大的进退两难- ASP.NET和jQuery

一个巨大的进退两难- ASP.NET和jQuery
EN

Stack Overflow用户
提问于 2009-06-09 11:49:09
回答 3查看 257关注 0票数 0

我有一个向导风格的界面,我需要从用户那里收集数据。我的经理要求我以一步一步的方式收集信息。

我已经决定将该过程的每一步都作为单独的用户控件来使用page.aspx。step1.ascx,step2.ascx等。

它现在的工作方式是,当最初的GET请求进入时,我呈现整个页面(位于母版页内)和step1.ascx。当步骤2的下一个POST请求到来时(使用查询字符串step=2),我通过覆盖Render(HtmlTextWriter)方法只向浏览器呈现step2.ascx,并使用div html()方法替换jQuery的内容。

这种整个方法的问题,除了很麻烦(在我看来)是不可能更新视图状态的,因为这通常是在服务器端处理的。

我的解决方法是将step1.ascx的内容存储到临时会话存储中,这样,如果用户决定单击Back按钮返回一步,我可以输出之前为其存储的值。

我觉得我在这里戴上我的技术帽子,想要尝试最新的Javascript热潮,因为.NET的jQuery已经采取了许多类似于黑客的方法和逆向工程来获得正确的结果。简单地使用更新面板并完成它会更容易吗?还是有一个全面的资源站点可以使用jQuery在ASP.NET中做所有的事情?

感谢您抽出时间阅读这篇文章。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-09 11:55:17

另一种可能更容易使用的方法是使用初始GET请求加载整个表单,然后隐藏除第一个部分之外的所有部分。然后使用jQuery隐藏和显示表单的不同部分,当显示最后一部分时,整个表单在一个POST中发布到服务器。这样,您就可以处理服务器上的输入,就像用户在一个步骤中完成了数据输入一样,并且仍然可以在客户端获得逐步的体验。

票数 7
EN

Stack Overflow用户

发布于 2009-06-09 13:00:43

您可以一个接一个地放置所有用户控件,打开当前步骤控件的可见性,并在适当的时候打开其他控件。不需要重写Render()。这样,用户控件的视图状态将由服务器管理。您可以专注于任何步骤的验证逻辑。

使用UpdatePanel来包含这些步骤将提供ajax体验,并且仍然能够在每个步骤上提供验证。如果你可以一次验证多个步骤,Tomas Lycken的建议(用JQuery隐藏/显示)会给你一步一步的快速体验。

票数 1
EN

Stack Overflow用户

发布于 2009-06-09 12:01:30

你有没有考虑过使用ASP.NET Wizard control?定制UI有点困难,但除此之外,它在类似的场景中对我来说效果很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/969583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档