1

MVC では、コントローラーのデフォルト ビューにより、インデックス内の項目を選択し、その ID を使用して特定の編集ページに到達することで、編集ページに到達できます。

この MVC 編集ページには、ドロップダウンの変更に反応する JavaScript があります。ドロップダウンは、インデックス ページから利用可能な潜在的な ID のサブセットを表し、一般に、誰かが現在表示されている ID とは異なる ID を選択します。

コントロールへのポストバックは C# で正しく機能し、ID に関連するモデルを見つけることができます。C#コントローラー側ではすべて正しく表示されます。ただし、同じ編集ページにリダイレクトしようとしても、別の ID (ドロップダウンの ID) を使用すると、ページは ajax 呼び出しに戻ります。

ajax呼び出しを「短絡」して、返されないことを「認識」するが、C#が編集ページにリダイレクトできるようにする方法はありますか(インデックスページから要素が選択された場合と同様)。

前もって感謝します、

ジョセフ・ドギー

4

2 に答える 2

0

OK、これを行う方法が少なくとも 1 つあります。

YController という名前のコントローラーで X を編集するとします。

JavaScript: var MyControllerUrlSettings = { MyControllerPrepareModifyXInfoUrl: '@Url.Action("PrepareModifyAssetInfo", "Y", new { x_txt = " param " })' }

次に、ドロップダウンの変更を処理する JavaScript があります。

$('#ModelXList').change(function () {
        //// alert('Change detected');
        if ($("#ModelXList").val() != "") {
            //// alert('Reached here');
            var XNbrString = $("#ModelXList").val();
            var trimmedXNbrString = $.trim(XNbrString);
            //// debugger;
            if (trimmedXNbrString != "") {

                var url = MyControllerUrlSettings.MyControllerPrepareXInfoUrl;
                window.location.href = url.replace('__param__', trimmedXNbrString);
            }
        }
        else {
        }
    });

最後に、コントローラーには次のメソッドがあります。

public ActionResult PrepareModifyXInfo(string XNbr_txt)
        {
            // we cannot save anything here to cdll_cdcloanerlist;
            // static variables must be used instead.

            /// .... do what you have to do....

            return RedirectToAction("ModifyEdit", new { XNbr_txt = XNbr_txt });
        }

注: 独自の理由から、すべてが一般的なものになるように構文の一部を変更したため、上記のコードを少し操作する必要があるかもしれませんが、動作します

別の回答も大歓迎です。

于 2014-04-22T19:24:18.583 に答える