考虑以下标记:
<h2>Edit SAS Program</h2>
@using (Html.BeginForm("Edit", "SasProgram", FormMethod.Post))
{
<label for="Name">Name</label>
@Html.TextBoxFor(model => model.Name)
using (Html.BeginForm("Delete", "SasProgram", FormMethod.Post))
{
<input type="submit" class="button" value="Delete" />
}
<input type="submit" class="button" value="Save Changes" />
}
我希望将 Delete
按钮与 Edit
按钮放在同一 View 中。但是,它不允许我使用嵌套表单。处理这种情况的适当方法是什么?
我尝试利用这个答案,How to handle nested forms in ASP.NET MVC ,但它现在是一个损坏的链接。
最佳答案
我会为相同形式的按钮名称使用不同的值:
@using (Html.BeginForm("Edit", "SasProgram", FormMethod.Post))
{
<label for="Name">Name</label>
@Html.TextBoxFor(model => model.Name)
<button name="action" value="delete">Delete</button>
<button name="action" value="save">Save Changes</button>
}
然后切换 Controller :
[HttpPost]
public ActionResult Edit( SomeModel model, string action )
{
switch( action ) {
case "delete":
// delete action
break;
case "save":
// save action
break;
}
}
代码是根据内存编写的,但它可以在生产环境中运行。请注意,按钮是默认类型 - 提交。
关于c# - 如何在 ASP.NET MVC 中处理同一窗体上的编辑和删除按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662716/