Asp.net MVC を SharePoint サイトに統合しました。それはうまくいきます。ただし、デフォルトのSharepointマスターページも使用しています(~masterurl/default.master
つまり)。form
問題は、すべての Sharepoint ページが通常の Asp.net WebForm ページであるのに対し、この特定のマスター ページではページ全体が要素にラップされていることです。
私の MVC コンテンツには、サーバーに送信する独自のform
入力要素が必要です。Ajax 呼び出しは明らかにそれほど問題ではありません。元の要素$("form").serializeArray()
を保持していると使用できません。form
ただし、送信イベントには Web フォーム機能があり、サーバーに送信されるデータが多すぎるため、通常のポストバックには問題があります。
通常のポストバックと Ajax ポストバックを使用します。主な問題は通常のポストバックです。
したがって、両方を実行する必要がある2つの可能性があります$(document).ready()
:
- フォーム要素を削除し、他のすべてのコンテンツをそのまま保持します。jQuery では、
form
要素の先頭に を追加しdiv
、そのコンテンツをこの div に移動してから削除することを意味する可能性がありform
ます。 form
要素を に直接変更しdiv
ます。これはおそらくブラウザ処理の面でより高速になるでしょうが、私はそれを行う方法がわかりません.
したがって、誰かが2.の解決策を詳しく説明し、これら2つの可能な解決策についていくつかの情報を提供できる場合: どちらを実行する必要があり、その理由.
編集
第三の可能性もあります。必要に応じて入力要素を作成するだけで、それらをdiv
要素内に含めることができます。ユーザーがフォームを送信したい場合(フォームdiv
ではありません)、次のことができます。
- 動的に呼び出す
$("div.form").serializeArray()
- フォーム要素を作成する
- シリアル化された値を入力します
- フォームを本文に追加
- それを提出します。
面倒に思えますが、うまくいく可能性があります。それでも最初の 2 つの解決策はより単純に見えます。