c# - 处理多个自动重定向的正确方法是什么?

标签 c# asp.net browser redirect

我有一个网站,基本上允许客户构建一个包含可配置项目的购物车。用户将选择一个项目,系统会提示他们选择他们想要的第一个选项,然后他们将被发送到第二个步骤,在那里他们选择第二个选项,等等。

步骤数和选项数是可变的,因为它们是由客户端定义的。通常该项目只有 2-3 个步骤和 5-10 个选项。但是,为了让客户更快地完成操作,如果给定步骤只有一个选项可用,系统会自动选择该选项并将用户转到下一步。

客户决定设置一个包含 10 多个步骤的项目,每个步骤只有一个选项。这导致整个过程自动选择一切。 FireFox 不喜欢这样,因为它会给出错误

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

(我没有检查过 IE 或 Chrome,尽管它可能会给出类似的错误)。

解决这个问题的最佳方法是什么?

现在的流程基本上是

  1. 用户选择项目
  2. 如果有多个可用选项,用户将选择选项。否则,网站会自行执行步骤 3。
  3. 通过 POST 将选项添加到购物车
  4. 重定向到 Page.aspx?step=#
  5. 根据需要多次重复步骤 2-4

我可以对代码或页面进行任何更改,以便 FireFox 不会认为我处于无限循环中吗?

最佳答案

令我惊讶的是,如果 # 每次都不同,您会收到无尽的重定向错误,但无论哪种方式,这似乎都不是最好的架构。基本上,如果代码决定可以自动完成某个步骤,它会立即重定向到具有新步骤号的同一页面?

为什么不让您的代码在不重定向的情况下执行此操作,根据需要增加服务器代码中的页码,并直接向他们显示正确的步骤,而无需重定向?

无论您在每一步发布时发生什么,我认为您都可以在代码中轻松完成,而无需实际发布新帖子。

关于c# - 处理多个自动重定向的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441678/

相关文章:

asp.net - VBScript/IIS - 如何为特定网站自动设置 ASP.NET 版本

c# - 在 C# 中 Decimal 和 decimal 不同吗?

javascript - 为什么 jQuery TimePicker 在 Internet Explorer 9 中不起作用?

c# - 在 Razor 中显示 HTML 5 电话号码链接

http - 防御点击劫持

javascript - 如何访问拖动的文本(或 : How Does Dragging Text into an Input "Work"? )

javascript - 第一次绘制如何发生在 DOMContentLoaded 之前?

c# - 对象 a = new Dog() 与 Dog a = new Dog() 之间的区别

c# - 使我的应用程序成为打开所有 .txt 文件的默认应用程序

c# - 使用 LINQ 选择本周