C# 定义响应的位置。根据复选框列表的会话,重定向应转到何处

C# 定义响应的位置。根据复选框列表的会话,重定向应转到何处,c#,asp.net,webforms,C#,Asp.net,Webforms,在我的asp.net webfrom进程中,我有一个5步的进程,在Step02中,我有一个复选框列表。当用户单击此页面上的“下一步”按钮时,无论他们选择了什么服务,他们都会被带到步骤03,但如果用户只选择了“站点内容上载”或“站点内容和布局检查”,则从我的步骤03“下一步”按钮单击,他们应该被引导到我的“确认”页面,否则他们应该被引导到“步骤04”,但我我想不出来 下面的代码是我的“提交”按钮,点击步骤02 protected void Step02SubmitButton_Click(obje

在我的asp.net webfrom进程中,我有一个5步的进程,在Step02中,我有一个
复选框列表
。当用户单击此页面上的“下一步”按钮时,无论他们选择了什么服务,他们都会被带到步骤03,但如果用户只选择了“站点内容上载”或“站点内容和布局检查”,则从我的步骤03“下一步”按钮单击,他们应该被引导到我的“确认”页面,否则他们应该被引导到“步骤04”,但我我想不出来

下面的代码是我的“提交”按钮,点击步骤02

protected void Step02SubmitButton_Click(object sender, EventArgs e)
{
    SessionSaving();
    Response.Redirect("/Quotation/Step03.aspx");
}
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;
}
<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>
下面的代码用于存储步骤02的复选框的会话

protected void Step02SubmitButton_Click(object sender, EventArgs e)
{
    SessionSaving();
    Response.Redirect("/Quotation/Step03.aspx");
}
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;
}
<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");
    }
  }
}
protectedvoid Step03SubmitButton_单击(对象发送方,事件参数e)
{
列表选择=会话[“Step02Services”]作为列表;
如果(选择!=null){
if(selections.Contains(“站点内容上载”)| | selections.Contains(“站点内容和布局检查”)){
Response.Redirect(“/YourConfirmationPage.aspx”);
}否则{
重定向(“/Step04.aspx”);
}
}
}

“想不出来”这个问题太笼统了。你试过什么吗?有错误吗?@Andrei没有,我什么都没试过,因为我不知道如何找回会话值。如果每个复选框都是单独存储的,我就可以按列表执行
Session[“Step02Services”],
,检查空值,您应该有选择back@Andrei但如果用户仅选择了“站点内容上载”或“站点内容&;“布局检查”或“站点内容上载和站点内容”;布局检查'然后我希望他们转到另一个页面请查看我更新的帖子,因为我完全错过了有价值的细节,现在可能会让你感到不安或需要修改,因为代码需要在我的Step03.cs(复选框列表后的页面)而不是Step02.cs(复选框列表所在的页面)中。我已经更新了我的答案。