2009-12-08 77 views
1

我處於一種情況,我正在給一個數據集輸出到MVC視圖。我真的很想弄清楚如何在提交後讓模型綁定器在重新找回的時候提取它。我有這樣的東西...ASP.NET MVC 1:數據集ModelBinding

public ActionResult TestData() 
{ 
    DataSet data = new DataSet("DS"); 

    DataTable table = new DataTable("DT"); 
    data.Tables.Add(table); 

    table.Columns.Add("ID", typeof (int)); 
    table.Columns.Add("Name", typeof (string)); 

    table.Rows.Add(1, "John"); 
    table.Rows.Add(2, "Mark"); 
    table.Rows.Add(3, "Paul"); 
    table.Rows.Add(4, "Chris"); 

    return View(data); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult TestData(DataSet data) 
{ 
    return View(data); 
} 

在頁面上我嘗試了很多不同的輸入元素的命名方案,但無濟於事。這甚至是可能的。如果可能的話,我會使用視圖模型類型,但不幸的是,這是一個完全動態的結構,而數據集是最自然的東西。

回答

2

如果是我,我會將這些行序列化爲隱藏的字段,它們都具有相同的名稱屬性。也許類似於

<input type="hidden" name="dsRows" value="[id]_[name]" /> 

然後在第二個動作(接受POST的那個動作)上,接受一個字符串[]作爲參數。然後,您可以使用一些LINQ查詢或其他東西將數組「爆炸」到數據集中。

(注意:我沒有具體測試過,但我已經多次使用該策略)

+0

感謝您的建議。這(或類似的選項)似乎是要走的路。我想我會嘗試讓我的數據集變得更友好,而不是使用它的香草。 – 2009-12-08 13:26:30