.Net 核心,在函数中使用 <Select> 不起作用

.Net core, use of <Select> in function not working

在 .cshtml 页面中,我创建了以下方法

@functions
{
    public string GenerateSelect()
    {
        <select>
            <option value="0">Ignore</option>
            <option value="-1"></option>
        </select>

        return "";
    }
}

尝试使用 like

<td class="borderLeft">
   @GenerateSelect()
</td>

但代码甚至没有编译并给出错误

错误 严重性代码说明项目文件行抑制状态 错误 MVC1006 该方法包含一个 TagHelper,因此必须是异步的并且 return 一个任务。例如,使用 ~/ 通常会导致 TagHelper 并需要异步任务 returning 父方法。

如果我们使用其他简单的 html 标记,那么 GenerateSelect() 方法可以正常工作,例如

  public string GenerateSelect()
   {
       <div>
           hello
       </div>

       return "";
   }

可能是什么问题?

尝试按照建议使其异步?

@functions
{
    public Task GenerateSelect()
    {
        <select>
            <option value="0">Ignore</option>
            <option value="-1"></option>
        </select>
    }
}

因为您的 select 选项包含将被视为 html taghelper 的值。所以你应该使用 System.Threading.Tasks.Task 而不是函数方法中的字符串。

更多详情,您可以参考以下代码:

@functions
{
    async System.Threading.Tasks.Task GenerateSelect()
    {
        <select>
            <option value="0">Ignore</option>
            <option value="-1"></option>
        </select>
    }
}

@{await GenerateSelect();}

结果: