微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP Net Core剃须刀页面中具有多个提交按钮的多个提交动作

如何解决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>

结果: enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。