您可以定義在這裏你不會有任何循環引用視圖模型:
public class DepartmentViewModel
{
public string DepartmentName { get; set; }
}
public class CompanyViewModel
{
public IEnumerable<DepartmentViewModel> Departments { get; set; }
}
,然後您會在模型和視圖模型(你可以使用AutoMapper這個),最後返回之間的映射查看模型到視圖。
例如:
public ActionResult Index()
{
var companies = _repository.GetCompanies();
var companiesVM = Mapper.Map<IEnumerable<Company>, IEnumerable<CompanyViewModel>>(companies);
return Json(companiesVM, JsonRequestBehavior.AllowGet);
}
現在您不再將有循環引用,你將能夠成功地序列化視圖模型,以JSON和你只會傳遞所需的視圖中的信息。
Mapper在這裏是什麼?我如何將它包含在代碼中?這是任何第三方實用程序?如果是的話,那麼是否安全使用很長時間 – 2011-02-04 09:11:09