将数组从C#返回到javascript的最佳(简单和清晰)方法是什么?

时间:2014-01-22 22:26:57

标签: c# javascript asp.net arrays asp.net-mvc-4

我知道这里有很多类似的问题,但我没有找到任何要求完全相同的人。

我正在使用ASP.NET和MVC4开发一个项目。我使用aspx作为视图引擎。我在我的视图中有一个javascript代码,它将值作为输入,并根据它们创建一个图形。

我使用下面的查询从我的数据库中获取这些值

        var query = from b in db.SchoolTestsPerModulePerStudent
                    where b.StudentID.Equals(2)
                    select b;

现在,我的问题是我是否在数组中有这些结果(我还没想到,如何给出b,将结果分成两个数组,一个包含测试的id,另一个包含学生的成绩但是,我希望我能很快),将这些数组从C#返回到javascript的最佳(简单明了)方法是什么?

2 个答案:

答案 0 :(得分:1)

将对象序列化为JSON。例如,如果您的模型是IEnumerable<string>

控制器

public ActionResult Index()
{
    IList<string> strings = new List<string>();
    strings.Add("Python");
    strings.Add("C#");
    strings.Add("Javascript");
    strings.Add("Ruby");
    return View(strings);
}

视图

@Json.Encode(Model)

结果:

["Python","C#","Javascript","Ruby"]

提取数组

  

如何给出b,将其结果分成两个数组

使用Linq。

var student = db.SchoolTestsPerModulePerStudent.Where(x => x.StudentId == 2);
var dates = student.Select(x => x.TestDate);
var grades = student.Select(x => x.TestGrade);

答案 1 :(得分:0)

提供给您视图的模型(viewmodel)应该包含一个包含id和等级的强类型列表。在您的视图中(至少使用剃刀),有一些html助手可以在您将Model.MyList传递给它时为您构建下拉列表。

抱歉,我还不能给你一个例子,我不在工作。