2011-08-14 40 views
0

我使用Telerik的MVC电网,并将其配置批处理模式编辑http://demos.telerik.com/aspnet-mvc/grid/editingbatch。我试图编辑我的实体“国家”,其中有城市列表,其中城市是另一个实体。以下是国家实体的外观。Telerik的MVC3格 - 批量编辑问题

public class State { 
    ...Some Scalar Properties 
    public virtual List<City> Cities { get; set; } //Navigation Property 
    public State() { 
     Cities = new List<City>(); 
    } 
} 

我的城市实体指向下面给出的状态。

public class City { 
    ... Some Scalar Properties 
    public virtual State State { get; set; } //Navigation property 
} 

我使用这个模型在我CSHTML某一页面的一些这样的事

@(Html.Telerik().Grid<State>() 
      .Name("tlkStateGrid") 
      .Editable(e => e.Mode(GridEditMode.InCell).DisplayDeleteConfirmation(false)) 
      .ToolBar(t => { 
       t.Insert().ButtonType(GridButtonType.Image); 
       t.SubmitChanges().ButtonType(GridButtonType.Image); 
      }) 

...Some More of code here. 

在我的控制,我在处理正常方式批量更新。

public ActionResult _SaveChanges(IEnumerable<State> inserted, IEnumerable<State> updated, IEnumerable<State> deleted) { 
..... 
} 

当我尝试使用Telerik的网格,上面的控制器动作的(IEnumerable的更新)参数对所有已修改的国家项目的批量编辑编辑国家实体。然而,即使州内没有任何城市,各州也有一个城市名单(没有任何一个城市)。

因此,问题是,我没有在我的代码任何部分产生的任何城市,但是当我收到美国作为参数传递给上面列出的控制器动作,还有一个空坐市城市名单内。为什么会发生?

回答

0

我不能完全肯定我理解这个问题。所以当网格帖子时,你创建一个新的状态。连接到该国家对象,有一个空对象。这是问题吗?或者我错过了什么?

如果是这样的问题,这是正常的行为,应当预期。这就是MVC3中的自动JSON反序列化的工作原理 - 只要您创建父对象并且不定义嵌套对象,嵌套对象将返回为空值。只需处理代码中的空值。

+0

感谢您的答复,但我已经决定不使用批量编辑网格。这对用户来说相当混乱。很高兴看到即使经过这么长时间的差距,问题仍然得到解答。大。 – Jatin

+0

没问题,男人。如果我在早些时候回答之前看过这个话题。我同意,我认为批量编辑会让用户感到困惑,但我的用户确实希望编辑过程“更像Excel”。去搞清楚。 – Will