【问题标题】:Return HTML or data from the server - ASP.NET Webforms从服务器返回 HTML 或数据 - ASP.NET Webforms
【发布时间】:2010-12-08 20:12:40
【问题描述】:

我正在处理一个包含多个部分的页面,每个部分看起来“几乎相同”。话虽如此,我想在服务器上构建 HTML 并在初始页面加载时为每个部分呈现它。在后续操作中,我会进行 ajax 调用并让服务器返回 json 数据。

另一个选项是对 aspx 页面上的 HTML 进行“硬编码”,并让 JS 对每个部分进行必要的自定义。第三种选择是使用 UpdatePanel 并在服务器端执行所有操作。

我应该根据什么选择使用什么方法?对于这样的页面,您会使用什么方法(将其视为具有子部分的大页面)

编辑: 一个部分有 HTML(例如用户名)和一个表格,用户可以在其中添加家属。另一部分几乎相同,除了“承包商”,因此还有额外的 HTML,例如以前的工作历史,但这个部分有名称(只读)和一个表来添加家属,就像第一个一样。其他部分或多或少具有相同的 HTML。 用户也可以删除依赖项,当发生这种情况时,我需要更新数据库并更新部分以反映较少的依赖项。我希望将任何后续操作作为与服务器和数据库交互的 ajax 调用

【问题讨论】:

  • 您对您正在尝试做的事情的描述非常模糊。你能举一两个具体的例子来说明你的部分是什么,你所说的“几乎相同”是什么意思,以及你将对它们进行什么样的修改?我认为 Mike 在建议自定义控件方面走在了正确的轨道上,但是从您的描述中很难看出...
  • @Ender - 请参阅编辑

标签: asp.net jquery ajax webforms


【解决方案1】:

在这种情况下,我将创建一个使用 ajax 调用来完成其工作的控件。然后,您可以设置一些属性来确定它们之间的细微差别。我也期待对此的其他意见/答案。

我会不惜一切代价避免使用更新面板,如果您已经了解 JavaScript 和 ajax 调用,它会引入一些您不必处理的问题。在没有更新面板中包含的所有开销的情况下,您还将获得更好的性能。

【讨论】:

  • “制作一个使用 ajax 调用的控件”-> 这是自定义控件还是 ASP.NET 控件之一。我还可以访问 Telerik ajax 控件。 “我会不惜一切代价避免更新面板”->您能解释一下更新面板的问题吗?它使开发变得容易,而且我一般都没有遇到过问题。
  • 我无法帮助您使用 Telerik 控件,我从未使用过它们。但根据您的“几乎相同”部分,创建 .ascx 可能会更容易,您还可以创建复合控件,请参阅:msdn.microsoft.com/en-us/library/3257x3ea.aspx 这完全取决于您和您的需要。
【解决方案2】:

根据您的更新,听起来您想要的是一个自定义控件,其中包含一些条件逻辑来根据其预期用途调整外观。从那里,当添加/删除依赖项等事件发生时,使用一些 ajax 调用与服务器通信。所以基本上,迈克所说的......

【讨论】:

  • 为什么要增加创建自定义控件的开销。我不能在客户端做条件逻辑吗?这样就轻多了
  • 因为如果您多次执行相同(或相似)的操作,创建自定义控件是一种更简洁的方法。假设您稍后决定要向这些部分中的每一个添加另一个字段...您是否愿意将字段添加到每个部分,以及将其连接起来所需的任何逻辑,或者您想将其添加一次,到您的自定义控制?
【解决方案3】:

一种选择是为“重复”输入字段创建用户控件,例如姓名和家属网格。

另一种选择是使用 jQuery 模板:http://plugins.jquery.com/project/jquerytemplate

我投票赞成不为此使用 UpdatePanel :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多