0

[州名][市]、[州][国]などのアイテムを含む地理コレクションがあります

ユーザーが入力を開始するためのテキストボックスが利用可能であり、jQueryオートコンプリートボックスが塗りつぶされて可能なオプションが表示されます。

投稿リクエストのURL構造は、上記のコレクションから選択されたものによって異なります。つまり、www.mysite.com / allstates / someterms(国が選択されている場合)www.mysite.com/city-state/someterms(都市の場合) 、状態が選択されています)www.mysite.com/[状態名]/ someterms(状態が選択されている場合)

これらは私のルートですでに定義されています。

最初は、適切なURL構造を決定するためにコントローラーにロジックを追加するつもりでしたが、それをgeoテーブルの追加フィールドとして追加することを考えていたので、geoコレクションのプロパティになります。

テキストボックスでキーを押すと、コレクションの詳細を表示するjQuery関数は次のとおりです。

    $(function () {
        $("#txtGeoLocation").autocomplete(txtGeoLocation, {
            source: function (request, response) {
                $.ajax({
                    url: "/home/FindLocations", type: "POST",
                    dataType: "json",
                    selectFirst: true,
                    autoFill: true,
                    mustMatch: true,
                    data: { searchText: request.term, maxResults: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.GeoDisplay, value: item.GeoDisplay, id: item.GeoID }
                        }))
                    }
                })
            },
            select: function (event, ui) {
                alert(ui.item ? ("You picked '" + ui.item.label + "' with an ID of " + ui.item.id)
                    : "Nothing selected, input was " + this.value);
                document.getElementById("hidLocation").value = ui.item.id;
            }
        });
    });

私が欲しいのは、オブジェクトパラメータに基づいてURLを構造化することです(最も単純なようです)。私は「選択された」でのみパラメータを読み取ることができ、ボタンのクリックでは読み取れないようです。

どうすればこれを達成できますか?

ありがとう。

4

1 に答える 1

0

これを解決するためにselect:、Javascriptからその部分を削除し、コントローラーに送信されるMVCルートに選択したオブジェクトパラメーターを追加しました。

于 2012-02-14T22:30:42.130 に答える