asp.net-core-mvc - ASP.NET MVC Core 中的路由,标签助手路由到错误的 POST 操作
问题描述
在下面的示例中,当我在http://test.com/pure-mvc-ui-demo
(注意没有 ID)并发布表单时,MVC 正确路由到示例控制器操作 ( http://test.com/pure-mvc-ui-demo
) 的 POST 重载。
当我在 时http://test.com/pure-mvc-ui-demo/1
,表单似乎错误地发布到http://test.com/pure-mvc-ui-demo/1
,这不是帖子重载的有效 URL。
我可以通过使用命名路由来规避这一点,但我觉得 MVC 应该知道在 POST 上下文中没有这样的路由。
有没有办法在仍然使用标签助手的同时减轻这种情况?
CSHTML
<form asp-controller="PureMvcUiDemo" asp-action="Example" method="post">
控制器
[HttpGet("pure-mvc-ui-demo/{exampleId?}")]
public IActionResult Example(int? exampleId)
{
//...
return View(exampleViewModel);
}
[HttpPost("pure-mvc-ui-demo")]
[ValidateAntiForgeryToken]
public IActionResult Example(ExampleViewModel exampleViewModel)
{
// ...
}
解决方案
推荐阅读
- jsf - Netbeans 中的托管 bean 构造抛出 java.lang.RuntimeException: at org.istrac.issdc.mpps.bean.UserBean。
(UserBean.java:1) - java - 如何从房间数据库中删除 recyclerview 项目
- python - 与拥有电子邮件的用户创建条带会话时出现“没有这样的客户”错误
- assembly - 如何从程序集中调用scanf?
- cryptography - 如何通过 Ballerina 中的字符串/文件创建加密:PublicKey 记录
- html - Angular POST 请求中的错误处理
- html - 如何使用 CSS 使导航栏链接在关闭时不变形?
- dart - Dart:为错误处理制作可重用的 try catch 块
- java - 在哪里可以找到我在 Java 中导入的包的源代码?
- python - 无法将具有 784 个元素的张量重塑为 [1,224,224](50176 个元素)