首页 > 解决方案 > 网页旨在返回基于答案的数字,但只返回空值?

问题描述

这段代码旨在根据 SQL Server 中运行的答案返回一个数字。我们已经填充了答案,但是网页只在应该返回例如 (5) 时才返回 null (0)。

任何人都可以帮忙吗?

public IActionResult OnPost(IList<Selection> selections)
{
    selections = selections;
    byte j = 0;

    for (byte i = 0; i < selections.Count; i++)
    {
        if (selections[i].Answer != 80)
        {
            Selected[j] = selections[i].Answer;
            j++;
        }
    }

    return Page();
}

下面列出了将号码发布到页面的代码的另一部分。

<form method="POST">
    @{IList<Selection> selections = Model.Selections;}
    @foreach (var Que in Model.Questions)
    {
        <b>@Que.Text</b>
        <br />
        @for (byte i = 0; i < Model.Answers.Count; i++)
        {
            if (Que.ID == Model.Answers[i].QuestionID)
            {
                <div style="border: 1px solid black;">
                    <label asp-for="@selections[i].Answer">@Model.Answers[i].Text</label>

                    <input type="radio" value="@Model.Answers[i].ID" name="@Que.ID" asp-for="@selections[i].Answer" />
                </div>
            }
        }
        <br />
        <br />
        <br />
        <br />
    }
    <br />
    <input type="hidden" value="@selections" asp-for="@selections">
    <input type="submit" asp-route-selections="@selections" />
</form>

标签: c#htmlcssasp.netasp.net-core

解决方案


您正在返回一个 Page()。您应该返回要包装在 IActionResult 中的值

public IActionResult OnPost(IList<Selection> selections)
{
     byte j = 0;
     for (byte i = 0; i < selections.Count; i++)
     {
          if (selections[i].Answer != 80)
          {
               Selected[j] = selections[i].Answer;
               j++;
          }
     }

     return Ok(Selected);
}

推荐阅读