0

以下は、ASP MVC ビューで参照している jQuery のバージョンです。

<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>

ウィジェットを使用して、リストautocompleteからのユーザーの選択に基づいてフォームが別のテキスト ボックスに入力するようにしますautocomplete。このページで、ユーザーは銀行名の入力を開始します。ユーザーが必要な銀行を選択したら、という名前の別のフィールドDynamics IDに適切な値を入力する必要があります。これが現在書かれているjQueryです

$(function () {
    $("#BankNameAuto").autocomplete({
        source: '@Url.Action("GetBanks", "AgentTransmission")',
        minLength: 1,
        onComplete: function (data) {
            $.getJSON('@Url.Action("GetDynamicsId", "AgentTransmission")', data, function (result) {
                $('Dynamics').val(result);
            })
        }
    });
});

上記の jQuery で呼び出される 2 つのコントローラー メソッドを次に示します。

    //GET
    public JsonResult GetBanks(string term)
    {
        var banks = from c in db.BankListMaster.Where(n => n.BankName.Contains(term))
                        select c.BankName;

        banks = banks.Distinct();

        return Json(banks, JsonRequestBehavior.AllowGet);
    }

    //GET
    public JsonResult GetDynamicsId(string term)
    {
        var dynamics = from c in db.BankListMaster.Where(n => n.BankName.Equals(term))
                    select c.LinkRepsToDynamicsUniqueId;

        dynamics = dynamics.Distinct();

        return Json(dynamics, JsonRequestBehavior.AllowGet);
    }

IDユーザーがリストから選択を行ったら、その値をその銀行に送り返すことができるようにしたいと考えました。BankListMasterこれはテーブルの主キーとして機能し、そのBankNameDynamicsIdは両方ともフィールドです。ただし、私はまだjQueryを初めて使用するため、これを行うことができない場合があります。

現在、両方のコントローラー メソッドの最初の行にブレークポイントを設定しました。ブレークポイントは毎回起動しますが、GetBanksまったく起動できませんGetDynamicsId

編集

BankName最初のクエリでフィールドを選択しているだけなのでGetDynamicsId、銀行名をパラメーターとして使用するようにメソッドを調整しました。

4

1 に答える 1

1

「select」イベントを処理することで、同様のことを行います。あなたの例のように「onComplete」ではありません。この変更を加えたコードは次のようになります。

$(function () {
    $("#BankNameAuto").autocomplete({
        source: '@Url.Action("GetBanks", "AgentTransmission")',
        minLength: 1,
        select: function (event, ui) {
            $.getJSON('@Url.Action("GetDynamicsId", "AgentTransmission")', { term: ui.item.value }, function (result) {
                $('Dynamics').val(result);
            })
        }
    });
});
于 2013-04-15T16:53:25.400 に答える