table 中的 EditForm 不呈现
EditForm within a table does not render
Blazor vRC1
EditForm
组件似乎有些细微之处,在某些标记情况下它不会呈现其内容。例如,当 EditForm
被放置在 内 <table>
标签中时,什么也不会发生 。
<table>
<thead>...</thead>
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
<tr><td>....</td></tr>
}
</EditForm>
</table>
然而,用 EditForm
包装 <table>
一切都按预期呈现 。
<EditForm Model="MyModel">
<table>
<thead>...</thead>
@foreach(var item in MyModel.Items)
{
<tr><td>....</td></tr>
}
</table>
</EditForm>
我同意后者,但是如果渲染引擎无法处理第一个示例,那么它会抛出某种错误以警告开发人员不支持这种情况会很好。
避免将 form
作为 table
的子元素。作为解决方法,您可以尝试添加一个 <div>
并在其中移动 EditForm
(尽管将 div
嵌套在表单中是不正确的),或者您可以将表单放入 table 单元格(在 <td>
标签内)。
<table>
<thead>...</thead>
<div>
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
}
</EditForm>
</div>
</table>
或:
<table>
<thead>...</thead>
<tr>
<td>
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
}
</EditForm>
</td>
</tr>
</table>
当然,最好将 table
放在 form
内。
when an EditForm is placed within the tags, nothing happens.
那是因为
<table>
<EditForm Model="MyModel">
</EditForm>
</table>
翻译成
<table>
<form>
</form>
</table>
Blazor 输出正常,但大多数浏览器不会呈现它。无效 HTML.
在表格周围放置一个 <div>
,就像@NanYu 的回答一样,是一种 hack,但它似乎有效。将 <form>
放在 <td>
中是完全有效的。
所以:不是 Blazor/Razor 问题,只是无效 html。
it would be nice if it'd throw some sort of error to warn the developer the situation is not supported.
将所有(针对不同的浏览器)构建到 razor 引擎中将需要大量工作,而且似乎没有必要。
Blazor vRC1
EditForm
组件似乎有些细微之处,在某些标记情况下它不会呈现其内容。例如,当 EditForm
被放置在 内 <table>
标签中时,什么也不会发生 。
<table>
<thead>...</thead>
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
<tr><td>....</td></tr>
}
</EditForm>
</table>
然而,用 EditForm
包装 <table>
一切都按预期呈现 。
<EditForm Model="MyModel">
<table>
<thead>...</thead>
@foreach(var item in MyModel.Items)
{
<tr><td>....</td></tr>
}
</table>
</EditForm>
我同意后者,但是如果渲染引擎无法处理第一个示例,那么它会抛出某种错误以警告开发人员不支持这种情况会很好。
避免将 form
作为 table
的子元素。作为解决方法,您可以尝试添加一个 <div>
并在其中移动 EditForm
(尽管将 div
嵌套在表单中是不正确的),或者您可以将表单放入 table 单元格(在 <td>
标签内)。
<table>
<thead>...</thead>
<div>
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
}
</EditForm>
</div>
</table>
或:
<table>
<thead>...</thead>
<tr>
<td>
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
}
</EditForm>
</td>
</tr>
</table>
当然,最好将 table
放在 form
内。
when an EditForm is placed within the tags, nothing happens.
那是因为
<table>
<EditForm Model="MyModel">
</EditForm>
</table>
翻译成
<table>
<form>
</form>
</table>
Blazor 输出正常,但大多数浏览器不会呈现它。无效 HTML.
在表格周围放置一个 <div>
,就像@NanYu 的回答一样,是一种 hack,但它似乎有效。将 <form>
放在 <td>
中是完全有效的。
所以:不是 Blazor/Razor 问题,只是无效 html。
it would be nice if it'd throw some sort of error to warn the developer the situation is not supported.
将所有(针对不同的浏览器)构建到 razor 引擎中将需要大量工作,而且似乎没有必要。