【发布时间】:2021-02-21 11:56:39
【问题描述】:
我有一个包含此代码的表单:
<form asp-page="TodoItem" asp-page-handler="Delete" method="post" id="myItem">
当我在浏览器中提交此表单时,会根据浏览器 F12 DevTools 中的网络选项卡向https://localhost:44311/TodoItem?handler=Delete 发送 POST。到目前为止一切顺利。
但是在我的 Razor Pages 项目中发生的情况是,在我的 TodoItempage 上,OnPost 正在运行,而不是我想要运行的 Delete 方法。
我该如何调试呢?我的 Microsoft.AspNetCore.Routing 的日志级别已经在 Trace,它只显示日志中的 URL,而不是 URL 中的查询字符串。
似乎我可以用任何东西替换处理程序名称,所以TodoItem?handler=Foobarzy 也运行OnPost,它完全静默失败 - Visual Studio 没有告诉我我正在使用 IntelliSense 指定一个不存在的处理程序,日志(在控制台中)并没有告诉我浏览器发出了奇怪的请求。这正常吗?
【问题讨论】: