2012-07-27 49 views
0

我發現很多關於這個的帖子,但是他們都沒有解決我的問題。我的代碼現在:值不能爲空。參數名稱:MVC listbox中的源碼

@Html.ListBox("SelectedNewsletter", Model.Newsletters) 

public MultiSelectList Newsletters 
{ 
    get 
    { 

      return new MultiSelectList(
      new[] 
      { 
       // TODO: Fetch from your repository 
       new { Id = 1, Name = "item 1" }, 
       new { Id = 2, Name = "item 2" }, 
       new { Id = 3, Name = "item 3" }, 
      }, 
      "Id", 
      "Name" 
       ); 

     //  return new MultiSelectList(PromoNewsletter.All, "IdString", "Display"); 
    } 
} 

據我所看到的,這一切都很難,現在編碼,它仍然給出了同樣的錯誤。我想做一個ListboxFor,但我試圖讓一個列表框工作。根據我在其他地方發現的建議,我用字符串表示替換了int id,但現在我看不到我還能做什麼。它只是簡單的不工作,即使所有的硬編碼值,並沒有綁定到我的ViewModel屬性。我哪裏錯了?

+0

可以粘貼你在哪裏加載代碼'ViewBag' /' ViewData'和你的'MultiSelectList'? – Mohayemin 2012-07-27 04:00:34

+0

這是在我的模型中,你正在查看代碼 – cgraus 2012-07-27 05:40:59

回答

3

的錯誤發生,因爲你必須在模式的ViewData/ViewBag名稱爲SelectedNewsletter的屬性。

如果您不能重命名該屬性,請爲ListBox指定一個不同的名稱。

UPDATE:

後多一點嘗試我想通了,問題是你可能是一個整數值設置爲SelectedNewsletter是某處的ViewData/ViewBag模式

您可以將必須​​在ListBox中選擇的值設置爲字符串或字符串數​​組,以SelectedNewsletter

SelectedNewsletter = "1";

SelectedNewsletter = new[] { "1", "3" }; 

您還可以使用強類型的幫手,讓一切變得簡單,

@Html.ListBoxFor(m => m.SelectedNewsletter, Model.NewsLetters); 
+0

好吧 - 原因是我想綁定到該屬性。我只是設置了名字來試圖避免綁定,並看看它是否仍然有效。 – cgraus 2012-07-27 05:40:43

+0

好的,我添加了一個全新的參數,並且已經工作。不過我現在還不確定我是如何去綁定一個實際參數的?這就是我開始使用的,這是一個簡化的版本,試圖獲得有效的工作或者一個有意義的錯誤信息。我甚至設置了它在.NET代碼中的位置,但它沒有顯示任何有用的東西。 – cgraus 2012-07-27 06:24:51

+0

@cgraus查看我更新的答案,以瞭解如何將選定值設置爲列表框 – VJAI 2012-07-27 06:56:48

相關問題