1

送信されたフォームの ASP.Net MVC 4 フォーム コレクションで奇妙な問題が発生しています。状況の事実は次のとおりです。

  1. ASP.Net MVC 4 プロジェクト
  2. 複数の入力があるビューにフォームがあります。
  3. フォームには 2 つの送信ボタンがあり、それぞれに異なる名前が付けられ、それぞれがビュー コントローラーの異なるアクションにマップされています (HttpParamActionAttribute を使用)。
  4. フォームの外側に 2 つの Actionlink ボタンがあり、フォーム内の 2 つの送信ボタンのそれぞれを指す onclick イベントがあります。つまり、これらの各ボタンがクリックされると、フォーム内の対応する送信ボタンのクリックが生成されます。
  5. 私が抱えている問題は、actionlink ボタンが押された場合、コントローラーで送信されたフォームの FormCollection が正しくないことです。フォーム ボタンを直接押すと、すべての正しいフォーム値がフォーム コレクションに表示されます。ただし、actionlink ボタンが押された場合、formcollection は送信されたフォームの値を表示しません。代わりに、フォームの古い (既定の) 値が表示されます。

なぜ違いがあるのですか?

actionlink ボタンがフォーム送信のクリックをシミュレートした場合、フォーム送信自体が押された場合とまったく同じことを行うと思いましたが、明らかにそうではありません。なぜだめですか?

4

1 に答える 1

0

次のようなことを試してください:

$('#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();
});
于 2013-08-07T16:09:20.057 に答える