【问题标题】:Passing form data to multiple actions in .NET [duplicate]将表单数据传递给.NET中的多个操作[重复]
【发布时间】:2017-07-15 08:59:58
【问题描述】:

我在 Razor 中完成了一个表格。用户可以选择两种操作来处理他们填写到该表单的数据,

SaveCurrentProgress(User user)

...允许用户保存表单的当前状态并稍后返回。或:

SubmitFinalVersion(User user)

这会保存表单数据,然后将其呈现为只读。

我知道如何使用 Html.BeginForm() 将对象传递给单个动作/控制器,但我如何对其进行编码以便用户可以将对象传递给两个动作之一?

【问题讨论】:

标签: c# asp.net-mvc razor


【解决方案1】:

你不能真的。您可能会制造一些 JS 解决方案,根据单击的按钮切换操作,但就基本形式而言,没有办法有条件地更改操作。

但是,您可以为提交按钮命名,然后在单个操作中进行分支。例如:

<button type="submit" name="SaveProgress">Save Current Progress</button>
<button type="submit" name="SaveFinal">Save Final Version</button>

然后,在你的 one 动作中:

if (Request["SaveProgress"] != null)
{
    // save progress
}
if (Request["SaveFinal"] != null)
{
    // save final
}

由于只有被点击的按钮才会进入帖子数据,您可以使用按钮名称的存在来确定用户点击了哪个。

最后一个选择是根本不用担心保存不完整的数据服务器端。您可以使用localStorage 来保存用户将输入的数据添加到表单中。这意味着您甚至不需要明确的按钮。然而,这种方法的一个缺点是它必须绑定到用户当前正在编辑的浏览器和机器上(因为它是客户端)。如果他们移动到另一台计算机,他们将无法继续编辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 2019-05-27
    相关资源
    最近更新 更多