您可以定义在这里你不会有任何循环引用视图模型:
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