一个窗体,但多个操作按钮

本文关键字:操作 按钮 窗体 一个 | 更新日期: 2023-09-27 17:55:10

我有一个表单,用户在其中填写了一些详细信息,并使用提交按钮提交数据。

我需要向窗体添加一个新按钮,该按钮执行回发,将模型传递回去,将一些项添加到 List<>(这是模型的属性),然后刷新页面。

如何将帖子路由到与表单的发布方法不同的操作?

一个窗体,但多个操作按钮

您可以在操作中使用提交按钮的名称作为参数。

假设您有以下提交按钮:

<input type="submit" name="btnCompare" value="Compare" />
<input type="submit" name="btnSave" value="Save" />

您可以在一个操作中捕获它们,然后检查单击了哪个:

[HttpPost]
public ActionResult SavedResults(Results myResults, string btnCompare, string btnSave) {
  if (btnCompare != null) {
    //btnCompare was clicked. Do related stuff here.
  }
  else if (btnSave != null) {
    //btnSave was clicked. Do related stuff here.
  }
}

您应该使用两个名称相同但值不同的不同按钮,并在具有条件的控制器上的 post 操作中使用此按钮名称。

在您的视图中使用它

在控制器上使用以下代码。

[HttpPost]
public ActionResult ActionName(ModelName model, string Action)
{
if(Action.Equals("button1")
{
}
if(Action.Equals("buttons")
{
//write your code to add items in list
model.itemList.Add(newitem);
}
return RedirectToAction("ActionName",model);
}