1

一連の部分ビューが動的に入力されるタブストリップがあります。これらの各部分ビューはエントリ フォームであり、一部のビューの背後には異なる Entity Framework データ モデルがあります。

別のタブが選択されるたびに、2 つの引数 (対象のタブ インデックスとモデル データ) を使用してモデルをサーバーに POST したいと考えています。(タブデータを保存するため)

私の問題は、タブのリンクをクリックすると、「投稿」アクションではなく「取得」アクションのように見えることです。データを包括的かつ分離して送信する方法がわかりません。(包括的なモデルであり、PARTICULAR 部分ビューに関連付けられたモデルである分離) JQuery を使用して、部分ビューの更新ボタンのクリック メソッドを見つけて実行できると思いますが、それではターゲット インデックスが保持されません。

フォーム自体を一意に識別し、その後投稿する方法を見つける最善の方法はありますか? ここで私にヒントがある人はいますか?

4

2 に答える 2

0

最善の方法が何であるかはわかりません。私がやっていることは、パーシャルでコードをラップすることです

@using (Html.BeginForm("Action", "Controller"))
{
 }

そして、送信ボタンのクリックイベントがあります。それは、そのパーシャルからの情報だけをポストバックします。複数のパーシャルを同じアクションに送信したい場合は、タブがクリックされたときに設定される隠しフィールドを使用し、Request.Form["FieldName"] を使用してそのインデックスを取得できるはずです。うまくいけば、それは役に立ちます。

編集:

サーバーへのajaxコールバックを試すこともできます

$.ajax({
        url: "@Url.Action("Action", "Controller")",
        type: 'post',
        data: {id: 'hiddenfield', data: 'data', etc},
        dataType: 'json',
        contentType: "application/json",
        success: function (result) {
            (do something)
        }
});

この方法でモデルを送信するには、これらのフィールドをデータ行に追加する必要があります。大量のデータがある場合は、文字列化することをお勧めします。この呼び出しを送信ボタンのクリック イベントに入れることができます。

于 2013-08-22T22:32:19.907 に答える
0

前述の ajax 呼び出しを使用します。要素が親ページにあるか部分ページにあるかは関係ありません。HTML がレンダリングされると、DOM 上の任意の要素を参照できます。

于 2014-01-07T12:59:47.223 に答える