Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MVC UpdateModel的孙子集合上的ExcludeProperties_C#_Asp.net Mvc - Fatal编程技术网

C# 使用MVC UpdateModel的孙子集合上的ExcludeProperties

C# 使用MVC UpdateModel的孙子集合上的ExcludeProperties,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个模型a,其中包含一组Bs和一组Cs。当使用MVCs内置的控制器功能UpdateModel时,我可以轻松地将传入数据绑定到我的模型,并排除不绑定的属性。杰出的不 假设我有以下模型,我想排除我的子集合的集合,但我无法使其工作,因此请为我指出正确的方向 class A { int Id { get;set;} List<B> Bs { get;set;} } class B { int Id { get;set;} List<C> Cs { get;set;}

我有一个模型a,其中包含一组Bs和一组Cs。当使用MVCs内置的控制器功能UpdateModel时,我可以轻松地将传入数据绑定到我的模型,并排除不绑定的属性。杰出的不

假设我有以下模型,我想排除我的子集合的集合,但我无法使其工作,因此请为我指出正确的方向

class A {
 int Id { get;set;}
 List<B> Bs { get;set;}
}

class B {
 int Id { get;set;}
 List<C> Cs { get;set;}
}

class C {
 int Id { get;set;}
 List<B> Bs { get;set;}
}
更新
添加了我不想更新Cs的原因,这是因为它是一个多对多关系,与UpdateModel不兼容,因为它使用真实的Cs在数据库中创建新的Cs。

什么是AViewModel?为什么要调用UpdateModel?如果一个在InputModel中,那么它已经更新了!如果不需要,为什么要呈现Cs控件?AViewModel也可以是int-Id,因为我需要获取帖子的Id,以便知道要更新哪个实体?GetAById正在调用存储库,返回带有changetracking的实体框架。我想要它们,这个场景中的问题是Cs需要在页面上呈现,但不需要更新,因为这是一个多对多关系,而UpdateModel并没有很好地处理这些关系:,我将更新我的代码以使其更清晰。我认为这甚至不会编译-应该是吧。。新[]{B.Cs}?您的模型不包含名为B的属性,因此它需要是UpdateModela、null、null、new[]{Bs.Cs};我已经更新了代码,但仍然不起作用。它没有将Cs从绑定中排除。我没有也永远不会使用UpdateModel,所以我不确定,但为什么不直接发回模型,然后更新您想要的模型的属性呢。如果你不需要的话,为什么要创建控件并发回C的值呢?
[HttpPost]
public ActionResult Edit(int Id) {
   A a = GetAById(Id);
   UpdateModel(a, null, null, new { "Bs.Cs" });
   /* Here comes few more lines saving to database etc */
}