网页旨在返回基于答案的数字,但只返回空值?

Posted

技术标签:

【中文标题】网页旨在返回基于答案的数字,但只返回空值?【英文标题】:Web page is meant to return a number based an answer but only ever returns null? 【发布时间】:2021-11-11 19:13:41 【问题描述】:

这段代码旨在根据 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>

【问题讨论】:

此代码返回Page()。它不会对其计算结果做任何事情。 (Selected 甚至在哪里定义?)您在哪里/如何具体观察您描述的结果?顺便说一句,这条线完全没有意义:selections = selections; 你调试过这个吗?当你进入Page() 时会发生什么? 它应该只返回一个空白网页。我有它应该返回的 .cshtml 页面设置。 欢迎来到 Stack Overflow。你到底想在这里做什么?您在问题中说“页面旨在返回一个数字”,并且在您的一个 cmets 中说“它应该返回一个空白网页”。这是两件不同的事情。 方法 OnPost 应该返回一个数字吗?如果是这样,它不是。它返回一个Page。返回的Page 是否应该在某处有数字?好吧,怎么可能呢,Page 从来没有被告知这个数字应该是多少。我认为你需要退后一步,想想你在这里想要完成什么。 明天我会发布更多,因为我不在我的电脑前。我有页面拉数字,但它总是返回 0 或 null。我应该在页面上发布代码吗? 【参考方案1】:

您正在返回一个 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);

【讨论】:

我试过这个方法。 Visual Stuido 抱怨“好的”部分。 错误是什么? docs.microsoft.com/en-us/dotnet/csharp/language-reference/… 您可能需要导入相关的包。尝试单击错误并按Ctrl + . 这应该会打开一个小窗口,其中可能有一个分辨率。然后只需按回车键。 刚刚尝试使用该方法,它只是在该方法下方导入一个私有类。在那个类中,它只是抛出一个“未实现”异常并关闭浏览器。

以上是关于网页旨在返回基于答案的数字,但只返回空值?的主要内容,如果未能解决你的问题,请参考以下文章

基于星期几返回计数或空值的 Netezza SQL 语句

11汇总和分组数据

'get'返回空值python [duplicate]

返回 SQL 中返回空值的行?显示它们不是空白值

在第一个元素后使用 Selenium 返回空值

JS函数返回NaN