2

在我的一個項目中使用Boilerplatejs和asp.net mvc2。我在其中一個樣板視圖中有一個自動完成的搜索框。我想將所選的「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); 
    }; 


}); 

我的問題是如何抓住這個返回用戶id從另一模塊的視圖模型?那麼我可以對Action方法進行ajax調用並檢索必要的信息。有誰能夠幫助我?

回答

2

我想你應該在這裏使用URL控制器。一旦用戶從搜索框中選擇了特定的用戶配置文件,您就可以使應用程序導航到用戶的配置文件頁面。喜歡的東西:

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

現在,您的用戶配置組件應該聽

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

這是一件好事,能夠通過URL來處理你的業務對象。這增強了書籤和保持瀏覽器歷史記錄的能力。

相關問題