表内的 EditForm 不呈现

Aar*_*don 7 razor asp.net-core blazor blazor-editform

开拓者 vRC1

EditForm组件似乎存在一些微妙之处,在某些标记情况下它不会呈现其内容。例如,当EditForm将 an 放置在标签<table>时,不会发生任何事情

<table>
<thead>...</thead>
<EditForm Model="MyModel">
    @foreach(var item in MyModel.Items)
    {
        <tr><td>....</td></tr>
    }
</EditForm>
</table>
Run Code Online (Sandbox Code Playgroud)

然而,用一切包裹起来<table>EditForm 按预期呈现

<EditForm Model="MyModel">
<table>
<thead>...</thead>   
    @foreach(var item in MyModel.Items)
    {
        <tr><td>....</td></tr>
    }
</table>
</EditForm>
Run Code Online (Sandbox Code Playgroud)

我对后者很好,但是如果渲染引擎无法处理第一个示例,那么如果它抛出某种错误来警告开发人员这种情况不受支持,那就太好了。

Nan*_* Yu 6

避免将 makeform作为 的子元素table。作为解决方法,您可以尝试添加 a<div>并在其中移动EditForm(尽管嵌套在表单中是不正确的div),或者您可以将表单放入表格单元格(标签内<td>)中。

<table>
    <thead>...</thead>
    <div>
        <EditForm Model="MyModel">
            @foreach(var item in MyModel.Items)
            {

            }
        </EditForm>
    </div>
</table>
Run Code Online (Sandbox Code Playgroud)

或者 :

<table>
    <thead>...</thead>
    <tr>
        <td>
            <EditForm Model="MyModel">
                @foreach(var item in MyModel.Items)
                {

                }
            </EditForm>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

但当然,最好是有你的table内心form

  • 请参阅[this](/sf/answers/417732941/),如果您愿意,放入`div`是解决方法,但它更喜欢将表格放在表单中。 (2认同)