2014-05-09 34 views
0

我正在用C#使用asp.net mvc4。我从Getdeatils()学生班的方法中获得详细信息。这个方法返回一个数组。方法Getdetails也有相同的字段,如studentBO。在控制器我有一个方法,像如下何传递一个模型对象或一个Viewbag到Javascript?

public ActionResult Index() 
      { 
      List<studentBO> list = new List<studentBO>(); 
        Student.GetDetails[] dt = Student.Getdeatils(); 
       for (int i = 0; i < dt.Length; i++) 
       { 

          studentBO.name= dt[i].name; 
          studentBO.studentno= dt[i].studentno; 
          studentBO.address= dt[i].address; 
          list1.Add(studentBO); 
        }  
      ViewBag.Registrationlist = list1; 
      return View(list1); 
     } 

studentBO对象有3个领域

public class studentBO 
    {  
     public long studentno{ get; set; } 
     public string name{ get; set; } 
     public string address{ get; set; } 
} 

How can I get viewbag or model in my Jquery `$(document).ready(function() {}` function. I want to get every students name. So I have to use foreach loop as well. 

回答

1

您可以在ViewBag连载您的项目,并将其写入到视图,从而使Javascript代码将能够阅读:

$(document).ready(function() { 
    var registrationList = @(Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewBag.Registrationlist))); 
    for (var i = 0; i < registrationList.length; i++) { 
     var studentno = registrationList[i].studentno; 
     var name= registrationList[i].name; 
     var address= registrationList[i].address; 
     // write some more code to make use of the values 
    } 
}); 
+0

谢谢Stefano Dalpiaz。 var registrationList是一个对象,那么如何获取特定文件的值?我想获得studentno和名字。 – Dino

+0

该变量应该呈现为Javascript数组,因此可能会有多个学生在其中。我修改了我的答案以显示如何获取这些值。 –

+0

非常感谢Stefano Dalpiaz。它的作品:) – Dino

1

使用的WebAPI创建返回您的对象的一项服务。然后,您可以在您的Javascript代码中使用ajax-call来获取对象。

的WebAPI:

public class StudentsController : ApiController 
{ 
    IEnumerable<Student.GetDetails> GetDetails() 
    { 
     List<studentBO> list = new List<studentBO>(); 

     Student.GetDetails[] dt = Student.Getdeatils(); 

     for (int i = 0; i < dt.Length; i++) 
     { 

      studentBO.name= dt[i].name; 
      studentBO.studentno= dt[i].studentno; 
      studentBO.address= dt[i].address; 

      list1.Add(studentBO); 
     } 

     return list1; 
    } 
} 

的Javascript:

$(document).ready(function() { 
    // Send an AJAX request 
    $.getJSON("api/students") 
     .done(function (data) { 
     // On success, 'data' contains a list of students. 
     $.each(data, function (key, item) { 
      //Do something with the student object 
     }); 
     }); 
});