2012-09-05 26 views
0

我使用Tag-it jquery plugin稱爲「sampleTags」這個插件使用變量來存儲一些值,使用它時,用戶寫的東西給他們的自動完成功能。在Entity Framework和jQuery之間傳輸數據?

var sampleTags = ['c++', 'java', 'php', 'coldfusion'] 

我的問題是:

  1. 我從表中檢索我的標籤名稱中使用EF這樣

    Array MyTags=db.tblTags.ToArray(); 
    

    我使用asp.net的MVC稱爲tblTags,我怎麼可以把sampleTags中MyTags的值,這樣我可以給我的用戶自動完成依賴於我的數據的完整功能?

  2. 我如何驗證我的用戶輸入的數據,並更新我的數據庫?

這樣不和我一起

$(function() {  
     var sampleTags = new Array(); 

     $.ajax({ 
      url: '/mp3/GetTags', 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
      failure: function() { 
       alert('Error contacting service!'); 
      }, 
      success: function (data) { 
       for (var j = 0; j < data.d.length; j++) { 
        // Now you can use something like data.d[j].studentID; 
        sampleTags[j] = data.d[j].item; 
       } 

       $('#allowSpacesTags').tagit({ 
        availableTags: sampleTags, 
        allowSpaces: true 
       }); 
      } 
     }); 
    }); 

回答

0

個人不viewBag的風扇,但無論如何,我喜歡用的返回JSON方法,用於從控制器傳遞數據回視圖:

public JsonResult someMethod() 
{ 
    //populate your tags into say, tagX 
    return Json(tagX); 
} 

然後在JavaScript端,經由接收JSON數據帶有POST的dataType設置爲JSON的$​​ .ajax()調用,然後根據需要反序列化/如果插件需要,則轉換爲JavaScript數組。

要回答你關於反序列化的評論:

$.ajax({ 
        url: '../WebServices/SomeService.asmx/SomeSearch', 
        type: 'POST', 
        data: "{'jsonFilterObject':" + JSON.stringify(jsonFilterObject) + "}", 
        contentType: 'application/json; charset=utf-8', 
        failure: function() { alert('Error contacting service!'); }, 
        success: function (data) { 
         for (var j = 0; j < data.d.length; j++) { 
          //Now you can use something like data.d[j].studentID; 
} 
        }); 
+0

感謝我的友情..根據需要反序列化/轉換爲JavaScript數組「。 –

+0

編輯我的答案告訴你反序列化... –

+0

感謝,但它沒有工作:(請參閱我的一部開拓創新後 –

0

你可以設置你的MyTags變量爲ViewBag,和你的ViewBag內容設置爲sampleTags或檢查sampleTags具有接收Json的功能。

+0

我做到了,但你能告訴我怎麼做「,那麼它沒有和我一起工作 VAR sampleTags = @ ViewBag.MyTags –