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