我对.NET 6/Razor页面相当陌生当下拉列表值发生更改时,我想模仿web表单的行为。在web表单中,我可以执行OnSelectedIndexChanged
,它会在后面的代码中找到一个特定的方法。使用剃须刀页最好的方法是什么?
目前,我有
<button class="btn btn-info text-white" asp-page-handler="ResetForm"><i class="fa-solid fa-ban"></i> Clear</button>
<select asp-for="CurrentPage" onchange="ddlCurrentPageChange()" asp-items="Model.DdlPages" ></select>
<script>
function ddlCurrentPageChange() {
document.getElementById("form");
}
</script>
问题是,如果我单击重置按钮,然后更改DDL值,它会发布到处理程序ResetForm
您可以随时更改提交操作,该操作将POST:
<form method="post" id="test">
<select asp-for=CurrentPage onchange="document.forms['test'].submit();" asp-items=@Model.ddlPages ></select>
</form>
page.cshtml.cs
public void OnPost(string currentPage)
{
MoveTo(currentPage);
}
public void MoveTo(string page)
{
Console.WriteLine(page);
}
编辑:修正了@jeremycaney 指出的错误数据