MVCフォームに問題がありました。2番目のフォームの送信ボタンが2番目のフォームをトリガーすると、2番目のフォームの送信ボタンが元のフォームの動作にPOSTリクエストを送信します。
第2フォームの送信ボタンは、元のフォームの操作に進みます。 フォームがネストできるかどうか尋ねました:Why do nested forms in Asp.net mvc not have scope?。フォームタグは実際に入れ子にすることができないので、フォームを別のdivに入れて問題を解決するように変更しました。
ユーザーが最初のフォームで[送信]をクリックすると、2番目のフォームが表示されます。ユーザーがフォームの送信ボタンをクリックすると、新しいフォームのビューとビューモデルの後に名前が付けられたフォームではなく、元のフォームのコントローラアクションにPOSTされます。
挿入される形態は、第二の形態は、その端部に<input type="submit">
タグを有する Ajax.BeginForm(new AjaxOptions {UpdateTargetId="X"}))
を使用しています。ユーザーがこのボタンをクリックすると、フォームのモデルの値はコントローラに返されません。
私は明示的にAjaxのリンクでのコントローラのアクションを指定して試してみた:
<%: Ajax.ActionLink("Add OS","OS",new AjaxOption{UpdateTargetId="", HttpMethod="POST"})%>
これは戻って正しいアクションにフォームを送信します。ただし、返される値はすべてnullです。
FormCollectionはHtml.BeginForm
で簡単に作業し、FormCollection
辞書を解析していますが、完全に理解できない理由でセットアップが機能しなくなりました。
ここで問題は何ですか?私は、私が再びウェブフォームの土地にいるように感じています...
これはおそらくhttp://stackoverflow.com/questions/649513/how-do-i-perform-a-secondary-action-i-e-calculate-fields-in-asp-net-mvcと同様の問題ですか? – rsteckly