2011-08-14 42 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