2014-02-15 36 views
1

我是新來的JavaScript .... 我在數據庫中的數據...... 我使用LINQ如下JSON在MVC4使用javascript

public List<SelectListItem> getTokens() 
    { 
     var tokens = from T in db.tokens select T; 
     List<SelectListItem> items = new List<SelectListItem>(); 
     foreach (var t in tokens) 
     { 
      items.Add(new SelectListItem { Value = t.id.ToString(), Text = t.tname }); 
     } 

     return items.ToList<SelectListItem>; 
} 

或者

public string getTokens() 
{ 
    var tokens = from T in db.tokens select T; 
    string s = "["; 
     foreach (var t in tokens) 
     { 
      s += "{ id:" + t.id.ToString() + ", name: " + t.tname + "},"; 
     } 
     s += "]"; 
     return s; 
} 
得到它

我想這個字符串/列表傳遞給我的JS功能這樣的事情...

$(document).ready(function() { 
     $("#demo-theme").tokenInput([ 
      { id: 7, name: "Ruby" }, 
      { id: 11, name: "Python" }, 
      { id: 13, name: "JavaScript" }, 
      { id: 17, name: "ActionScript" }, 
      { id: 19, name: "Scheme" }, 
      { id: 23, name: "Lisp" }, 
      { id: 29, name: "C#" }, 
      { id: 31, name: "Fortran" }, 
      { id: 37, name: "Visual Basic" }, 
      { id: 41, name: "C" }, 
      { id: 43, name: "C++" }, 
      { id: 47, name: "Java" }], 
      {theme: "ab" 
     }); 
    }); 

我需要t替換他與我的字符串/列表... 或任何其他的方式來傳遞項目的第一個列表....

回答

1

就快與你的第二個,你只需要把它轉換成JSON響應,並且不需要嘗試自己將其串行化。

public JsonResult getTokens() 
{ 
    return Json(db.tokens.ToList(), JsonRequestBehavior.AllowGet); 
} 

那麼這將返回從AJAX請求,你想傳遞到該JavaScript方法(假設令牌有要去掉沒有額外的屬性)到底是什麼。

更新: jQuery的阿賈克斯文檔,可以發現:https://api.jquery.com/jQuery.ajax/

然而,讓我爲您提供的情況下,一個簡單的替代你只是試圖讓一個對象到JavaScript和它不需要/想要異步。您可以簡單地使用一個字段來更新您的MVC ViewModel,該字段會列出您的所有令牌並將其傳遞到視圖中的腳本中。

public ActionResult YourExistingAction() 
{ 
    YourExistingViewModel model = new YourExistingViewModel(); 
    model.Tokens = db.tokens.ToList(); 
    return View(model); 
} 
你的看法

然後:

@model YourExistingViewModel 

<script> 
    var tokens = @Html.Raw(Json.Encode(Model.Tokens)); 
    $(function() { 
     $("#demo-theme").tokenInput(tokens, { theme: "ab" }); 
    }); 
</script> 
+0

謝謝.....那個的Javascript也需要幫助 – pavan

0
public JsonResult getTokens() 
{ 
    var tokens = from T in db.tokens select T; 
    var items = tokens.Select(t => 
     new SelectListItem { Value = t.id.ToString(), Text = t.tname }); 

    return Json(items, JsonRequestBehavior.AllowGet); 
} 
+0

需要協助recieving太... – pavan