多个表单,单个视图,用于MVC Core 2.0的ViewModel



MVC Core相当新,并且有一个视图,其中包含两个表单和一个表单标签中的单个按钮。我有一个视图模型,以便我可以将多个对象传入和传出视图。

我看到的问题是按钮仅 POST 返回它所在的表单的内容,而不是同一视图上其他表单中包含的数据,即使它正确填充了 ViewModel;我已经通过在每个表单中放置一个按钮来测试这一点,并根据您单击的按钮,该表单的数据将传递回控制器。

作为一个新手,我假设一旦填充了 ViewModel 中的属性,提交按钮的 POSTing 背面将捕获所有输入的数据 - 事实并非如此。

我看到的示例似乎与在同一视图中具有不同功能的要求有关(例如。登录/注册(,但我希望收集到的所有数据都在一个 POST 中传回,这可能吗?

如果你想要一些来源,我可以提交,但我认为以上希望能很好地解释我的问题。

蒂亚。

这不是与 ASP 相关的问题,因为它在您的服务器上运行并生成交付给浏览器的 html 代码。是浏览器发回数据...因此,当提交表单时,浏览器会收集包含的输入文件并从其数据中创建 POST 请求。事实上,浏览器对视图模型一无所知。

您可以通过在视图模型的本地未使用属性的每个窗体中生成隐藏的输入字段来解决此问题。这样,两个表单都包含所有数据,并且生成的帖子将是"完整的"。但根据我的经验,维护起来很难。因此,我建议您考虑使用具有单独帖子端点的单独表单。

同意 agua的答案,尽管它没有明确解决问题(如果确实可以解决(。

最新更新