.NET MVC 模态表单提交

Posted

技术标签:

【中文标题】.NET MVC 模态表单提交【英文标题】:.NET MVC Modal Form Submit 【发布时间】:2020-03-20 01:45:23 【问题描述】:

只是关于在模态和相关操作中提交表单的一般问题。

我有一个现有的标准表单,由脚手架为您创建,它使用“案例/创建案例”操作。此操作将保存表单并具有标准重定向到操作以返回 Index.cshtml

我想允许用户从主页做一个缩短的“快速案例”版本的案例表单。

我已更新 Home/Index.cshtml 以包含一个按钮,该按钮将打开一个模式 (modal id = "createCaseModalForm"),其中包含一个用于“Cases/CreateQuickCase”操作的表单。这当前是一个 ActionResult。

这使用与之前的“案例/创建案例”操作类似的逻辑,但这次不是有一个提交的重定向操作,我只是希望保存数据并关闭模式。表单的 ID 是“#createQuickCaseForm”

这个模态提交是否需要 ajax?

控制器动作应该返回什么,因为它必须返回一些东西。它应该是“动作结果”以外的不同动作类型吗??

谢谢

【问题讨论】:

如果我理解正确的话,它比看起来更简单。您不需要ajax,只需正常发布表单,但在模态对话框的保存按钮上进行。 您可以使用表单创建部分视图,然后在视图和模态中使用它,正如@derloopkat 所说,只需提交表单,结果将是相同的。 抱歉,我不是故意的。这实际上是控制器动作,我不知道它应该做什么。我在模态中有部分视图,并且我知道如何将模态的关闭附加到提交按钮。控制器动作应该做的更多。应该是行动结果吗?而且我有验证和保存数据的逻辑,但是如果成功提交,该操作应该返回什么。谢谢! 【参考方案1】:

如果我没有正确回答您的问题,那么您想要实现两个目标。

    在提交时保存数据 在提交时关闭模式

要实现这一点,您可以调用正常的控制器操作,还可以编写一个 jquery 来帮助您在单击提交按钮时关闭模式。

JQuery 代码可以是: $('#YourSubmitButtonID').click(CLOSEMODAL)

【讨论】:

感谢成功了一半。控制器动作应该是什么?或者它应该返回什么 - 因为我不想返回视图(页面刷新)或被重定向到其他任何地方,控制器在保存数据后应该做什么?谢谢 return View() 实际上并没有刷新页面。所以你可以写下来检查一下。

以上是关于.NET MVC 模态表单提交的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 5 MVC:在模态窗口之前验证表单

在 MVC5 中提交时,带有表单的模态窗口不会关闭

ASP.NET MVC5 Bootstrap 3 模态表单未验证客户端并回发到页面

MVC .NET 表单提交未命中控制器操作

ASP.NET MVC 表单提交多层子级实体集合数据到控制器中

ASP.NET MVC 表单提交两次