我想以这种方式设计我的页面。假设当第一次请求到达控制器时,模型数据将传递给视图,而角度将捕获该数据并构建表格UI。
找到了一个与MVC和淘汰js的链接public class MyData{
public int Value1 {get;set;}
public int Value2 {get;set;}
}
public ActionResult Index()
{
List<MyData> data = new List<MyData>(); //change this with how you retrieve data
return View(data);
}
<script type="text/javascript">
$(function(){
var dataObject = JSON.parse('@Html.Raw(Json.Encode(Model.ToList()))');
});
</script>
我不希望在客户端页面呈现时从客户端调用服务器端功能,而我想从服务器端在客户端发出数据,而Angular将捕获它并填充UI。告诉我如何使用代码示例。感谢
答案 0 :(得分:1)
由于两个原因,您不希望该变量包含在$(function(){})
中。
首先它创建一个闭包,这样你就无法从包装函数外部访问它,然后它就不会被定义,直到你需要它之后的就绪事件发生。
只是做:
<script type="text/javascript">
var dataObject = JSON.parse('@Html.Raw(Json.Encode(Model.ToList()))');
</script>
然后,您可以从角度内的任何位置访问该全局变量,以将其传递给服务,常量或您想要使用它的任何内容。
请记住,angular只是javascript,因此javascript范围规则适用,任何全局变量都位于范围链的顶部