c# - 如何在 ASP.NET MVC 中处理同一窗体上的编辑和删除按钮?

标签 c# asp.net .net asp.net-mvc

考虑以下标记:

<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/

相关文章:

c# - "bool"作为对象 vs "string"作为对象测试相等性

c# - 在服务器上发布我的 Core 2.2 项目后 web.config 无效

c# - 对 GridView 进行排序时出现“System.StackOverflowException”

c# - .net 在多级使用反射获取属性

c# - 使用 FileHelpers 导入 CSV 文件

c# - 在 Azure Webjobs SDK v3 的 ServiceBusTrigger 函数中处理 Webjob 关闭

jquery提交-在发布之前更改输入值

javascript - 使用 javascript 隐藏详细信息 View 字段

c# - 在 .net c# 代码中创建类类型

c# - window.external 是否同步