【发布时间】:2020-10-05 18:47:45
【问题描述】:
我使用 Razor 页面,在我的页面模型中我有空列表。我需要由用户填写。而且我不知道会有多少项目。目前我正在使用 post 方法向我的页面添加输入,如下所示:
public async Task OnPostAddLicence()
{
await SetDials();
LicenceList.Add(new Licence());
}
public async Task OnPostRemoveLicence(int index)
{
await SetDials();
ModelState.Clear();
LicenceList.RemoveAt(index);
}
这种方法的问题是它会重新加载页面并滚动到页面的顶部。 不幸的是,我没有找到任何方法来回滚我所在的位置。并且因为它的剃须刀页面保持滚动位置不起作用。
所以我想用 javascript 动态添加这些项目。我试过用这个:
<div id="divCont">
<div>
<input type="text" class="form-control" asp-for="Salaries[0].HoursWorked" placeholder="Odpracovaných hodin">
<input type="button" onclick="AddTextBox()" value="Add" />
</div>
</div>
<script type="text/javascript">
function GetDynamicTextbox(value) {
return '<div><input type="text" name="txttest" style="width:200px;" asp-for="Salaries[0].HoursWorked" /><input type="button" onclick="RemoveTextBox(this)" value="Remove" /></div>';
}
function AddTextBox() {
var div = document.createElement('DIV');
div.innerHTML = GetDynamicTextbox("");
document.getElementById("divCont").appendChild(div);
}
function RemoveTextBox(div) {
document.getElementById("divCont").removeChild(div.parentNode.parentNode);
}
</script>
但它没有将值绑定到列表。 我可以在网上找到的所有其他方法都不适用于剃须刀页面,而只能用于 mvc
【问题讨论】:
标签: javascript list asp.net-core dynamic razor-pages