如何解决ASP Net Core剃须刀页面中具有多个提交按钮的多个提交动作
我有一个带有表单和多个提交按钮的剃须刀页面。使用每个按钮,我想在我的代码隐藏文件中启动一个不同的Post操作。所以这是在我的cshtml页面中:
<form class="form" method="post" >
<input type="submit" value="Test1" formaction="Button1" />
<input type="submit" value="Test2" formaction="Button2" />
</form>
,并且在我的cshtml.cs文件中:
[HttpPost]
public IActionResult Button1(IFormCollection data)
{
//my code
}
[HttpPost]
public IActionResult Button2(IFormCollection data)
{
//my code
}
不幸的是,这不起作用。提交时收到404错误:
找不到该本地主机页面未找到该网址的网页:https:// localhost:44366 / Mutations / Button1 HTTP错误404
正确的URL应该是:https:// localhost:44366 / Mutations / Test
我在做什么错了?
解决方法
您必须为两个操作分配不同的路由(与您的'between'
匹配):
formaction
,
由于您是Razor
中的一个项目,所以Razor
中的路由规则与MVC
项目不同,因此可以如下更改代码:
您的cshtml.cs文件:
public IActionResult OnPostButton1(IFormCollection data)
{
//...
}
public IActionResult OnPostButton2(IFormCollection data)
{
//...
}
您的cshtml页面:
<form class="form" method="post">
<input type="submit" value="Test1" asp-page-handler="Button1"/>
<input type="submit" value="Test2" asp-page-handler="Button2"/>
</form>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。