首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#多选题测试

c#多选题测试
EN

Stack Overflow用户
提问于 2017-03-22 20:44:35
回答 3查看 1.5K关注 0票数 2

我正在创建一个基于web的修订资源,我正在尝试用asp.net在c#中创建一个多项选择测验。我已经创建了它并让它工作,但它很长,想知道是否有人知道我如何使代码更紧凑,也当它打印最终分数时,它出现在我网站上的导航栏上方,我不知道为什么。

此外,答案可以更改,提交按钮只是再次点击,我找不到任何关于如何停止这一点的爱。

我对任何事情都非常陌生,并且正在尽我最大的努力。如果有人能给我指出正确的方向,或者提出一些可能有帮助的建议,那就太好了。

谢谢

我对代码的长度表示歉意:

代码语言:javascript
复制
<asp:Content ID="Content1" ContentPlaceHolderID="Head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="server">
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>


    <asp:RadioButtonList ID="RadioButtonList1" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList2" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList3" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList4" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList5" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList6" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList7" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList8" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList9" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>
    <asp:RadioButtonList ID="RadioButtonList10" runat="server"
        RepeatDirection="Horizontal" RepeatLayout="Table">
        <asp:ListItem Text="*Answer 1*" Value="Incorrect 1" />
        <asp:ListItem Text="*Answer 2*" Value="Correct" />
        <asp:ListItem Text="*Answer 3*" Value="I" />
        <asp:ListItem Text="*Answer 4*" Value="4" />
    </asp:RadioButtonList>

    <asp:Button ID="Button1" runat="server" Text="Submit Final Answers" OnClick="Submit_Click" />
    <script runat="server">
        protected void Submit_Click(object sender, EventArgs e)
        {
            int Score = 0;
            string selectedValue1 = RadioButtonList1.SelectedValue;
            if (selectedValue1 == "Correct")
            {
                Score++;
            }
            string selectedValue2 = RadioButtonList2.SelectedValue;
            if (selectedValue2 == "Correct")
            {
                Score++;
            }
            string selectedValue3 = RadioButtonList3.SelectedValue;
            if (selectedValue3 == "Correct")
            {
                Score++;
            }
            string selectedValue4 = RadioButtonList4.SelectedValue;
            if (selectedValue4 == "Correct")
            {
                Score++;
            }
            string selectedValue5 = RadioButtonList5.SelectedValue;
            if (selectedValue5 == "Correct")
            {
                Score++;
            }
            string selectedValue6 = RadioButtonList6.SelectedValue;
            if (selectedValue6 == "Correct")
            {
                Score++;
            }
            string selectedValue7 = RadioButtonList7.SelectedValue;
            if (selectedValue7 == "Correct")
            {
                Score++;
            }
            string selectedValue8 = RadioButtonList8.SelectedValue;
            if (selectedValue8 == "Correct")
            {
                Score++;
            }
            string selectedValue9 = RadioButtonList9.SelectedValue;
            if (selectedValue9 == "Correct")
            {
                Score++;
            }
            string selectedValue10 = RadioButtonList10.SelectedValue;
            if (selectedValue10 == "Correct")
            {
                Score++;
            }
            Response.Write(Score);

        }
    </script>
</asp:Content>
EN

回答 3

Stack Overflow用户

发布于 2017-03-22 20:58:53

这可能会缩短评估阶段:

代码语言:javascript
复制
RadioButtonList[] lists = new RadioButtonList[] {RadioButtonList1, RadioButtonList2, RadioButtonList3, RadioButtonList4, RadioButtonList5, RadioButtonList6, RadioButtonList7, RadioButtonList8, RadioButtonList9, RadioButtonList10 };

foreach (RadioButtonList element in lists ) {
            if (element.SelectedValue == "correct") {
                Score++;
        }
}
票数 1
EN

Stack Overflow用户

发布于 2017-03-22 21:01:48

对于Submit_Click方法,我建议您将所有的CheckBoxes放在一个列表中或某种类型的Enumerable中。然后,您可以对此列表进行迭代,并在每次迭代中评估结果。某物类似于:

代码语言:javascript
复制
protected void Submit_Click(object sender, EventArgs e)
{
     int score = 0;
     List<RadioButtonList> list = new List<RadioButtonList>() { RadioButtonList1, RadioButtonList2, ... RadioButtonList3 };
     foreach (var element in list) 
     {
        if (element.SelectedValue == "correct") {
            score++;
     }
     Response.Write(score);
}
票数 1
EN

Stack Overflow用户

发布于 2017-03-22 22:31:20

我没有一个确切的解决方案,但既然你问的是如何被指引到正确的方向,下面是你应该采取的步骤:

  • 创建一个带有问题语句的TextBox和单选控件列表或任何选项的用户控件,还可以添加一个隐藏字段来放置正确标识问题的标识符或其他内容。
  • 在主页上,您可以使用转发器控件,也可以使用数据动态添加用户控件。
  • 检查正确选择的所有代码都应该在用户控件中。
  • 在主窗体中,当提交主窗体时,访问每个用户控件并收集结果。

几年前,我在ASP.NET webForms中做了一个类似的应用,但我有"<< Back“和"Next >>”按钮,所以在一个页面上只显示一个问题,整个应用记录时间,所以当测试持续时间过去时,它会将用户带到结束页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42952007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档