C# Json傳值與解析


最近接觸了工作室的項目,覺得一個功能的實現有點不好,心想不能就動手改了下,做了才知道我的js是多么的渣,功能是這樣的:

我要實現的功能就是當選擇學院時,就放松get請請求到后台,后台返回json信息再來填充班級的信息

C#后台代碼:

public string ClassToJson( List<Class> Class)
         {
             var sb = new StringBuilder();
             sb.Append("[");
             if (Class != null)
             {
                 
                 foreach (var item in Class)
                 {
                     sb.Append("{");
                     sb.AppendFormat("\"Id\":\"{0}\",\"Name\":\"{1}\"", item.Id, item.Name);
                     sb.Append("}");
                     sb.Append(","); 
                 }
                 if (sb.Length > 1)
                     sb.Remove(sb.Length - 1, 1);  
                  
             }
             sb.Append("]");
         return sb.ToString();
         }

傳到界面的就是包括Class的ID和Name,需要注意的是要用\''不然傳回去后就不能得到"ClassID":""之類的信息

 

JSON傳值C#代碼:

        [HttpGet]
        public ActionResult FindClassesByAcademy(string academyName)
        {
            var Class = (List<Class>) service.GetClassesByAcademy(academyName); 
           return Json(service.ClassToJson(Class),JsonRequestBehavior.AllowGet);
        }

 

 

接下就是View上的代碼了:

 $.get("/Admin/Student/FindClassesByAcademy", { "academyName": academyName }, function (data) {
                var Class = JSON.parse(data);
                for (var i = 0; i < Class.length; i++) { 
                   $('select#ClassesId').append("<option value=" + Class[i].Id + ">" + Class[i].Name + "</option>");
               } 
            }); 


注意一定要用JSON.parse來解析Json字符串之前一直用的是stringify老是出錯,看了下資料才知道實在是學的太少,parse是JSON字符串解析為原生的js值,而stringify是把js對象序列化為JSON字符串。

革命尚未成功,還得不斷努力

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM