【问题标题】:ASP.Net MVC 4 formcollection issueASP.Net MVC 4 formcollection 问题
【发布时间】:2013-08-07 15:30:37
【问题描述】:

我对提交的表单的 ASP.Net MVC 4 formcollection 有一个奇怪的问题。以下是实际情况:

  1. ASP.Net MVC 4 项目
  2. 我在具有多个输入的视图上有一个表单。
  3. 我在表单上有两个提交按钮,每个按钮都有不同的名称,并且每个按钮都映射到视图控制器中的不同操作(使用 HttpParamActionAttribute)。
  4. 我在表单外有两个带有 onclick 事件的 Actionlink 按钮,它们分别指向表单内的两个提交按钮。换句话说,当点击这些按钮中的每一个时,它会在表单中生成相应的提交按钮的点击。
  5. 我遇到的问题是,如果按下 actionlink 按钮,控制器中提交的表单的 FormCollection 不正确。如果直接按下表单按钮,那么所有正确的表单值都会在表单集合中看到。但是,如果按下 actionlink 按钮,则 formcollection 不会显示提交表单的值。而是显示表单的旧(默认)值。

为什么会有差异?

我认为如果 actionlink 按钮模拟了表单提交的点击,那么它会做与表单提交本身被按下一样的事情,但显然事实并非如此。为什么不呢?

【问题讨论】:

  • 请贴一些代码。您的操作链接视图会很好。
  • 没有看到代码我不能确定,但​​您可能需要在您的操作链接点击代码的末尾返回 false 到 cancel the default action。未能取消链接的默认操作可能会导致您描述的行为。

标签: asp.net-mvc formcollection


【解决方案1】:

试试这样的:

$('#outsideFormbutton').on('click', function()
{
   // This will call your form submit button
   $('#formButton').click();
});

$('#formButton').on('click', function(e)
{
   // Prevents the default action of the form button
   e.preventDefault();
   // Manually submit your form
   $('#myForm').submit();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多