C# asp net core razor页面中具有多个提交按钮的多个提交操作
我有一个带有表单和多个提交按钮的razor页面。对于每个按钮,我想在我的codebehind文件中启动一个不同的Post操作。这是我的cshtml页面:C# asp net core razor页面中具有多个提交按钮的多个提交操作,c#,asp.net-core,form-submit,submit-button,C#,Asp.net Core,Form Submit,Submit Button,我有一个带有表单和多个提交按钮的razor页面。对于每个按钮,我想在我的codebehind文件中启动一个不同的Post操作。这是我的cshtml页面: <form class="form" method="post" > <input type="submit" value="Test1" formaction="Button1" /> <input
<form class="form" method="post" >
<input type="submit" value="Test1" formaction="Button1" />
<input type="submit" value="Test2" formaction="Button2" />
</form>
<form class="form" method="post">
<input type="submit" value="Test1" asp-page-handler="Button1"/>
<input type="submit" value="Test2" asp-page-handler="Button2"/>
</form>
不幸的是,这是行不通的。当我提交时,我收到一个404错误:
找不到此本地主机页找不到该网址的网页:https://localhost:44366/Mutations/Button1
HTTP错误404
正确的URL应为:https://localhost:44366/Mutations/Test
我做错了什么?您必须为这两个操作分配不同的路线(与您的
动作相匹配):
[HttpPost("button1")]
public IActionResult Button1(IFormCollection data)
{
//my code
}
[HttpPost("button2")]
public IActionResult Button2(IFormCollection data)
{
//my code
}
由于您是Razor
中的项目,Razor
中的路由规则不同于MVC
项目,因此您可以按如下方式更改代码:
您的cshtml.cs文件:
[HttpPost]
public IActionResult Button1(IFormCollection data)
{
//my code
}
[HttpPost]
public IActionResult Button2(IFormCollection data)
{
//my code
}
public IActionResult OnPostButton1(IFormCollection data)
{
//...
}
public IActionResult OnPostButton2(IFormCollection data)
{
//...
}
您的cshtml页面:
<form class="form" method="post" >
<input type="submit" value="Test1" formaction="Button1" />
<input type="submit" value="Test2" formaction="Button2" />
</form>
<form class="form" method="post">
<input type="submit" value="Test1" asp-page-handler="Button1"/>
<input type="submit" value="Test2" asp-page-handler="Button2"/>
</form>
结果: