如果我的模型是MVC3中的QueryTable,如何访问Javascript中的项目数据

How to access item data in Javascript, if my Model is a QueryTable in MVC3?

本文关键字:Javascript 访问 数据 项目数 项目 何访问 模型 我的 MVC3 中的 QueryTable      更新时间:2023-09-26

我是MVC的新手。我发现这个网站很有帮助。但我一直在努力从Javascript访问Model数据。这是我的问题。

我知道如果我的控制器返回一个项目,那么我可以在<script>部分中使用<%: Model.Name%>

但对于Model中有更多项的情况,<%foreach (var item in Model) %><script>中不起作用,即使它在视图的其他部分也起作用。

有人能告诉我这件事吗?

还有人能推荐一本关于MVC和Razor的好书吗?

了解更多关于Model类的信息会很有帮助。最有可能的是,你有一个带有某种集合的类:

public class CollegeCourse
{
    public string Professor {get;set;};
    public List<Student> Students {get;set;};
}

您可以在服务器端代码中循环此集合,如下所示:

<% foreach (var student in Model.Students) %>

至于JavaScript。。。您给出的示例是如何循环使用List<T>并在服务器端构建一些HTML的示例。但当你的页面加载到浏览器中时,模型数据早已不见了。

要与JavaScript中的模型数据交互,您需要选择一种将数据发送到浏览器的策略。一些想法:

  • 在加载页面时将数据转换为JSON,然后在<script>标记中写出
  • 将数据嵌入HTML标记中,也许可以使用data-属性。然后您可以使用jQuery来检索这些值
  • 向控制器添加一个操作,该操作将以JSON形式返回所需的数据。然后,在页面加载后,您可以使用jQueryAJAX调用来检索模型数据,并对其进行任何魔术处理

前两种选择并不是真正的好做法。我建议您研究AJAX方法。下面是一个快速的例子,展示了如何做到这一点。这并不太难,MVC3甚至有一些内置的帮助程序,可以简化AJAX调用的设置。

如果你对ASP.NET总体上很满意,那么《专业ASP.NET MVC3》是一本很好的书,可以让你了解MVC和Razor。