2

私のプロジェクトの 1 つで Boilerplatejs と asp.net mvc2 を使用しています。ボイラープレート ビューの 1 つにオートコンプリート検索ボックスがあります。選択した「userId」(検索ボックスの提案から) を別のモジュールのビューモデルに送信し、その「userId」をパラメーターとして使用してコントローラーのアクション メソッドに ajax 呼び出しを行い、特定の情報を取得したいと考えていました。そのユーザーと最終的にその特定のモジュールのビューに表示します。

これが私のオートコンプリートスクリプトです

$(document).ready(function () {
    $('#name-list').autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Home/Searchuser",
                data: { searchText: request.term, maxResults: 10 },
                dataType: "json",
                success: function (data) {

                    response($.map(data, function (item) {
                        return {
                            value: item.DisplayName,
                            avatar: item.PicLocation,
                            rep: item.Reputation,
                            selectedId: item.UserUniqueid
                        };
                    }))
                }
            })
        },
        select: function (event, ui) {


            return selectedId; // **here im returning the required userId**
        }
    }).data("autocomplete")._renderItem = function (ul, item) {
        var inner_html = '<a><div class="list_item_container"><div class="image"><img src="' + item.avatar + '"></div><div class="label"><h3> Reputation:  ' + item.rep + '</h3></div><div class="description">' + item.label + '</div></div></a><hr/>';
        return $("<li></li>")
                .data("item.autocomplete", item)
                .append(inner_html)
                .appendTo(ul);
    };


});

私の問題は、この返された userId を他のモジュールのビューモデルから取得する方法です。そのため、Actionmethod への ajax 呼び出しを行い、必要な情報を取得できます。誰でも私を助けることができますか?

4

1 に答える 1

2

ここでは URL コントローラーを使用する必要があると思います。ユーザーが検索ボックスから特定のユーザー プロファイルを選択すると、アプリケーションでユーザーのプロファイル ページに移動できます。何かのようなもの:

Boiler.UrlController.goTo("user/"+ user.id);

これで、ユーザー プロファイル コンポーネントがリッスンするはずです。

controller.addRoutes({
    'user/{id}' : new UserComponent(context),
});

URL を介してビジネス オブジェクトをアドレス指定できることは常に良いことです。これにより、ブラウザの履歴をブックマークして保持する機能が強化されます。

于 2012-10-05T08:27:27.083 に答える