我在_layout模板导航栏中嵌入了一个搜索栏,因此我想指定表单提交到的剃须刀页面和页面处理程序。但是,asp-page标记帮助程序似乎无效,并提交到当前URL。奇怪的是我的锚标签是用相同的方式构造的并且可以正常工作。剃刀页面的名称为@page "/Users"
html:
<form method="get" asp-page="/Users" asp-page-handler="Search">
<input class="form-control" type="text" name="userName">
<input type="submit" value="Search">
</form>
<a asp-page="/Login" asp-page-handler="Logout" class="btn btn-outline-primary">Logout</a> <-- this works
这是应该调用的页面模型,但除非从同一页面提交表单,否则不应调用该页面模型:
public class AllModel : PageModel
{
public async Task OnGet()
{
...
}
public async Task OnGetSearchAsync([FromForm] string userName)
{
...
}
}
我可以看到与请求一起发送的表单数据,但没有看到URL中的?handler = Search,只有userName属性。