【在Asp.Net MVC中練習使用AngularJs】
public ActionResult Index()
{
var user =
_db.UserProfile.ToList();
return View(user.ToList());
}
傳到view時因為資料要給AngularJs的$scope使用,所以要轉成json格式,因此:
var userData = new
System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model);
但是發生錯誤:
序列化 'System.Data.Entity.DynamicProxies.UserProfile_CEE82D32FCD691626A61F42769FECEA9AB07909986AD7E4D856A9F08F03065F4' 型別的物件時偵測到循環參考。
看起來在物件層級中有循環參考(某個欄位參考另一個資料表),因此要選擇要用的欄位,且非導覽欄位,完整程式如下
@model IEnumerable<HappyMovieAngularJs.Models.UserProfile>
@{
var user = Model.Select(x => new { x.UserId, x.NickName,
x.UserName });
var userData = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(user);
}
<script>
var myApp = angular.module('myApp', []);
myApp.controller('AppCtrl', function ($scope) {
$scope.users = JSON.parse('@Html.Raw(userData)');
});
</script>
<div data-ng-app="myApp">
<div data-ng-controller="AppCtrl">
<table>
<tr data-ng-repeat="user in
users">
<td>{{user.UserId}}</td>
<td>{{user.NickName}}</td>
<td>{{user.UserName}}</td>
</tr>
</table>
</div>
</div>
沒有留言:
張貼留言