更改Select输入中的值后,使用页面处理程序发布表单



我对.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 指出的错误数据

相关内容

最新更新