2014-12-04 51 views
-2

我有一個數據類,我想通過一個視圖顯示,允許用戶改變它,並通過數據綁定帶回來。我想通過@model dynamic來做到這一點。這可能嗎?@model動態綁定與數組

這是我的模型

public class MyData 
    { 
     public int A { get; set; } 
     public string B { get; set; } 
    } 

入門發送到視圖像這樣

public ActionResult Index() 
    { 
     MyData[] myDataList = new MyData[2]; 
     myDataList[0] = new MyData() { A = 2, B = "Fred" }; 
     myDataList[1] = new MyData() { A = 3, B = "Sue" }; 

     dynamic charts = (from ch in myDataList 
          select new 
          { 
           ch.A, 
           ch.B 
          }).AsEnumerable().Select(c => c.ToExpando()); 

     return View(charts); 
    } 

,象這樣的觀點(這是錯誤的)

@model IEnumerable<dynamic> 

@foreach (dynamic item in Model) 
{ 
    <text> 
    @Html.TextBox("item.B") 
    </text> 
} 

我掙扎有點在這裏,因爲我不知道這是甚至可能的,我找不到許多@model dynamic的複雜例子

需要明確的是,這個例子是一個學術之一,我想在這裏是要了解什麼是可能的,在ASP MVC

任何意見動態模型?

感謝

+0

爲什麼你要使用'@model IEnumerable '? – 2014-12-05 00:20:22

+0

「這個例子是一個學術的例子,我想在這裏瞭解什麼是可能的動態模型在asp mvc」 – tony 2014-12-05 06:53:13

回答

1

在你看來試試這個:

@for(int i = 0; i < Model.Lenght; i++) 
{ 
    @Html.TextBoxFor(model => model[i].A) 
    @Html.TextBoxFor(model => model[i].B) 
} 
+0

對不起,雖然我確實說我想使用@model動態我沒有在代碼中包括它,我現在已經完成了 – tony 2014-12-04 16:05:40

0

雖然你可以得到它的工作,我不會推薦它。

簡單的修復恕我直言,是直接使用ExpandoObject作爲model。根本沒有必要將它轉換爲dynamic

+0

我所要做的就是獲得一個完整的使用'@model dynamic'的roundtripped示例,因爲它對我來說是新東西。 – tony 2014-12-04 16:07:57

+1

關鍵是它對你來說可能是新的,但這不是一個很好的玩法。坦率地說,讓我省下麻煩,只是說,甚至不用動態''根本就不打擾。它有其目的,但這些並不真正超越MVC框架所需。如果你在自己的代碼中使用它,那麼你會寫錯誤的代碼。 – 2014-12-04 16:28:55