【发布时间】:2013-08-07 15:30:37
【问题描述】:
我对提交的表单的 ASP.Net MVC 4 formcollection 有一个奇怪的问题。以下是实际情况:
- ASP.Net MVC 4 项目
- 我在具有多个输入的视图上有一个表单。
- 我在表单上有两个提交按钮,每个按钮都有不同的名称,并且每个按钮都映射到视图控制器中的不同操作(使用 HttpParamActionAttribute)。
- 我在表单外有两个带有 onclick 事件的 Actionlink 按钮,它们分别指向表单内的两个提交按钮。换句话说,当点击这些按钮中的每一个时,它会在表单中生成相应的提交按钮的点击。
- 我遇到的问题是,如果按下 actionlink 按钮,控制器中提交的表单的 FormCollection 不正确。如果直接按下表单按钮,那么所有正确的表单值都会在表单集合中看到。但是,如果按下 actionlink 按钮,则 formcollection 不会显示提交表单的值。而是显示表单的旧(默认)值。
为什么会有差异?
我认为如果 actionlink 按钮模拟了表单提交的点击,那么它会做与表单提交本身被按下一样的事情,但显然事实并非如此。为什么不呢?
【问题讨论】:
-
请贴一些代码。您的操作链接视图会很好。
-
没有看到代码我不能确定,但您可能需要在您的操作链接点击代码的末尾返回 false 到 cancel the default action。未能取消链接的默认操作可能会导致您描述的行为。
标签: asp.net-mvc formcollection