gpt4 book ai didi

ASP.Net Form 的字段仅在客户的环境中为空

转载 作者:行者123 更新时间:2023-12-01 15:58:59 24 4
gpt4 key购买 nike

我接到了一项任务,要解决其他人编写的某个旧项目中的错误。
项目是部署在IIS上的ASP.Net。

场景:

  1. 打开申请表。
  2. 填写个人详细信息。
  3. 点击“添加项目”按钮打开项目选择窗口。
  4. 选择项目并关闭项目选择窗口。

预期:返回申请表,它现在显示了输入的个人详细信息第 2 步,现在,在同一个请求页面上,在第 4 步中选择的所选项目列表。

实际:返回申请表,不显示个人详细信息,只显示选定的项目。


从代码中我了解到申请表上的每个字段都是:

  1. 保存到 session (例如 JavaScript 中的 onChange 调用代码隐藏保存功能)
  2. 从 Page_Load 上的 session 加载

我想上面的内容需要作为 ViewState 的替换机制,因为在上面的场景中,表单字段是必需的(例如个人详细信息)以跨多个页面保留。 (其他窗口的开启添加项目...)

我还从代码中了解到“添加项目”窗口中添加的项目是:

  1. 在“Add Items”页面保存到session
  2. 从“请求”页面的 Page_Load 中的 session 加载

现在,我们没有在客户的办公室处理项目,而是复制了项目并将其部署回我们的办公室 - 唯一的问题是现在工作正常 - 也就是说,个人详细信息和所选列表项目按预期显示。

我想要任何建议...可能是什么原因造成的行为?
另外,如果我无法在我的环境中重现问题,我应该在客户办公室检查/调试什么?

最佳答案

...What could be the cause of such behavior?

根据您的症状,听起来可能是服务器依赖于客户端脚本(设置从服务器响应发送的表单值)的依赖项(例如 jQuery)可能不被正在使用的(可能过时的)浏览器支持。

...what should I check/debug on the customer's office?

这是我收集到的在客户打开表单后应该发生的事情:

  1. 用户在表单控件中输入值。 (“个人详细信息”)
  2. 客户端事件处理程序向服务器发送异步请求(无回调),以便将表单值保存到用户的 session 中。
  3. 用户点击一个按钮。 (“添加项目”)
  4. 客户端事件处理程序打开一个新窗口,该窗口向服务器发送“项目选择”页面的请求。
  5. 从服务器收到响应,并在客户端显示“项目选择”页面。
  6. 用户选择控件的值。 (“项目选择”)
  7. 用户点击按钮(“关闭窗口”)
  8. 客户端事件处理程序:
    • 代表前一个窗口向服务器发送“个人详细信息”页面的请求(带有“项目选择”值)。
    • 关闭当前窗口。
  9. 上一个窗口收到响应,页面完全重新加载,所有表单数据仍然存在(重新加载)。

我们至少知道 9. 实际上并没有正常发生,因为这是您陈述的问题。

假设我的实现是正确的,您应该首先确定在最后一步中如何将值写入控件(例如服务器控件的值直接分配或服务器寄存器启动-启动客户端脚本来写入表单值)。然后您应该检查发送到您发现的方法的值。如果值不正确,请继续回溯到每个先前的服务器请求,以查看在响应之前生成的 session 状态是什么。如果这些值正确,那么在客户端收到来自服务器的响应后,您就会知道出现了问题(很可能是客户端)(我认为只有在我上面的 jQuery 理论正确的情况下才会发生这种情况).

关于ASP.Net Form 的字段仅在客户的环境中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25943357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com