2013-06-05 36 views
1

我想從我的視圖中發送一個列表框回到我的控制器。我使用文本框和按鈕動態添加項目,並且我希望能夠將所有這些項目發回到我的視圖中的某種數組中。我會如何去做這件事?發送選擇回控制器

我有以下modelcode:

[HttpPost] 
    public ActionResult BasicIdentificationIndex(MyObject returndata, List<int> ints) 

然後一些輸入框:

<input type="text" name="ints" value="1" /> 
<input type="text" name="ints" value="4" /> 
<input type="text" name="ints" value="2" /> 
<input type="text" name="ints" value="8" /> 

此代碼的工作,並返回到我的控制器(NOT NULL)。

編輯: 我的問題是,我不能讓一個選擇列表回發到我的控制器。我想給下面的回我的控制器:

<select name="selectfrom" id="select-from" multiple size="5"> 
    <option value="String1">Item 1</option> 
    <option value="String2">Item 2</option> 
    <option value="String3">Item 3</option> 
    <option value="String4">Item 4</option> 
</select> 

我怎麼會去這樣做,這樣我可以把所有的選項(字符串1,字符串等)回我的控制器列表?我曾嘗試以下:

控制器:

public ActionResult BasicIdentificationIndex(BasicIdentificationModel returndata,ICollection<String> AerialItems) 

型號:

public String AerialItems { get; set; } 

查看:

<select name="AerialItems" id="select-to" multiple size="5"> 
     <option value="5">Item 5</option> 
     <option value="6">Item 6</option> 
     <option value="7">Item 7</option> 
    </select> 

但返回給控制器的項目始終爲空。

+0

你是什麼意思「正確地返回到我的控制器」?整數參數是否填充?你的'returndata'對象是否也有可能已經去過的'ints'屬性? – AaronLS

+0

正確地在非空。整數確實填充了上面的代碼。如果我把ints放在裏面,它是空的,所以我只是將它作爲第二個參數傳遞,而不是試圖弄清楚它爲什麼不會綁定在我的對象內。 –

+0

只要MyObject類中的屬性是'Public List Ints {get; set;}'那麼它*應該*工作。我不認爲你需要,但*可能*需要添加MyObject的默認構造函數'Ints = new List ();'這樣它是非空的,但我不記得確定關閉我的頂部頭。 – AaronLS

回答

1

你應該能夠只是模型綁定回到整數集合...

我有點困惑,因爲這似乎是從主體哈克的博客文章複製...您列出什麼應該可以工作,但是如果不是,你可以包含你的其他代碼嗎?

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

+0

對不起,我的問題還不夠具體。我更新了它,以便更清楚我正在嘗試做什麼。我以這個例子來說明我是如何返回一個列表(來自Haacks博客)。 –

1

想通了。我需要使用Javascript來選擇列表中的所有項目。這會將它們全部發回收藏。

+1

如果您始終需要列出要發佈的內容,也許將它們作爲隱藏元素包含在您的表單中會更有用。如果用戶必須能夠取消選擇它們,請用HTML('selected =「selected」'「)預先選擇它們,而不是JavaScript。 – CodeCaster

+0

除用戶可以動態地添加到這個列表是問題。 –

+0

這不應該是一個問題,但如果它適合你這種方式,請繼續。 – CodeCaster

相關問題