我有一個強類型的視圖模型,MyViewModel,這種結構:爲什麼收藏不會通過郵件傳遞?
public name { get; set; }
public IEnumerable<Country> { get; set; }
我填充的變量,像這樣在一個控制器動作,指數:
string name = GetName();
IEnumerable<Country> countries = GetCountres();
然後我創建一個視圖模型並返回它:
var model = new MyViewModel
{
name = name,
countries = countries
};
當指數被調用時,一切順利,我能夠用「國家」的IEnumerable在DropDownListFor通話。然而,當我提交表單,張貼到控制器,看起來像這樣:
public ActionResult Index(MyViewModel model)
我只能訪問從我的模型「簡單」變量;字符串,int,十進制,bool等。任何IDictionariess或IEnumerables都爲null。我已經看到了一些例子,人們只需重新從他們的數據訪問調用中重新列出列表,但是當你有數據的時候,這看起來很愚蠢。當我有兩個多選框時,用戶可能會將項目從一個框移動到另一個框,這特別令人討厭。如果他們提交和驗證失敗,我將失去他們對盒子所做的更改。有沒有辦法來解決這個問題?
這基本上是導致問題的代碼 - 減去我調用實際存儲庫而不是一些GetCountries()方法的事實。我分配一個IEnumerable,將它傳遞給模型構造函數,返回一個View,然後發佈到期望該模型的另一個動作;當我這樣做時,我的IEnumerable爲null。 – raoul1034 2011-06-16 14:38:15
你可以編輯你的問題來發布你試圖發佈的視圖代碼 – 2011-06-16 16:04:22