根据复选框列表的会话定义 Response.Redirect 应该去哪里

Define Where Response.Redirect Should Go To Depending On Session For A Checkboxlist

在我的 asp.net webfrom 过程中,我有一个 5 步过程,其中在 Step02 我有一个 checkboxlist。当用户单击此页面上的 'Next' 按钮时,无论他们选择什么服务,他们都会被带到 Step03,但如果用户仅选择 'Site content uploading' 或 'Site content & layout checking',则从我的 Step03 'Next' 按钮点击它们应该被定向到我的 'Confirmation' 页面,否则它们应该被定向到 'Step04' 但我无法弄清楚。

下面的代码是我的 'Submit' 按钮点击 Step02

protected void Step02SubmitButton_Click(object sender, EventArgs e)
{
    SessionSaving();
    Response.Redirect("/Quotation/Step03.aspx");
}

下面的代码用于我的 Step02 选中复选框的会话存储

private void SessionSaving()
{
    List<string> selections = new List<string>();
    foreach (ListItem listItem in Services.Items)
    {
        if (listItem.Selected)
        {
            selections.Add(listItem.Value);
        }
    }

    Session["Step02Services"] = selections;
}

下面的代码是我的 HTML 我的 checkboxlist 的 Step02

<asp:CheckBoxList runat="server" id="Services" CssClass="CheckboxList">
    <asp:ListItem Text="All services" Value="All services"></asp:ListItem>
    <asp:ListItem Text="Site content uploading only" Value="Site content uploading only"></asp:ListItem>
    <asp:ListItem Text="Site content &amp; layout checking" Value="Site content &amp; layout checking"></asp:ListItem>
    <asp:ListItem Text="Testing on various browsers" Value="Testing on various browsers"></asp:ListItem>
    <asp:ListItem Text="Testing all website functionality" Value="Testing all website functionality"></asp:ListItem>
    <asp:ListItem Text="Responsive design (Design/Implemtation only)" Value="Responsive design (Design/Implemtation only)"></asp:ListItem>
    <asp:ListItem Text="Responsive design (Testing only)" Value="Responsive design (Testing only)"></asp:ListItem>
</asp:CheckBoxList>

在你的 step03 下一个事件中,你只需要从你的会话中读取,看看他们是否选择了这两个复选框之一并相应地重定向。

protected void Step03SubmitButton_Click(object sender, EventArgs e)
{
  List<string> selections = Session["Step02Services"] as List<string>;

  if (selections != null) {
    if (selections.Contains("Site content uploading") || selections.Contains("Site content & layout checking")) {
      Response.Redirect("/YourConfirmationPage.aspx");
    } else {
      Response.Redirect("/Step04.aspx");
    }
  }
}