我正在尝试反序列化一个nhibernate对象。由于某种原因,我得到一个循环引用错误。问题是我无法确定导致错误的属性。我用[ScriptIgnoreAttribute]标记了所有连接的类,但仍然没有。
答案 0 :(得分:1)
我建议您避免将模型对象传递给视图。您应该定义一个视图模型,该模型专门针对视图的需要而定制,并且仅包含必要的属性。然后在控制器中,您可以在模型和视图模型之间进行映射。例如:
public ActionResult Foo()
{
SomeModel model = _repository.GetModel();
SomeViewModel viewModel = Mapper.Map<SomeModel, SomeViewModel>(model);
return Json(viewModel);
}
这样您就不再需要担心循环引用,因为您可以完全控制视图模型,而且您只会公开视图所需的内容。