2009-12-29 76 views
2

我有一個模型(實體類)通訊。我將一份新聞通訊列表傳遞給一個視圖,並在每張新聞通訊的一個表格中顯示新聞通訊的列表。除了每個通訊行之外,還有一個複選框。我將通過選中複選框並單擊發送按鈕來選擇要發送的新聞快訊。ASP.Net MVC - 將查看中的選定數據傳遞給控制器​​(幫助!)

如何將選定的新聞快遞傳遞給控制器​​?

謝謝。

+0

這是否已經解決? – 2009-12-29 19:52:36

回答

1

在視圖:

<input type="checkbox" name="newsletterIds" value="<%=newsletter.Id%>"/> 

在您的目標控制器中:

public ActionResult SendNewsletters(int[] newsletterIds) 
{ 
... do something with the ids... 
} 
0

只需將一個名爲Selected的布爾值添加到您的實體類中,該實體類在傳回控制器時會告訴控制器在列表中選擇了哪些通訊。

如果你不想用客戶端元數據「污染」你的實體類,你可以繼承它並在你的派生類中添加所選的布爾值。

或者,您的模型可以簡單地包含一個單獨的列表,其中包含對所選簡報或某個唯一標識符的引用,以供日後從原始列表中選擇個別簡報。

0

做這樣的事情在你看來:

<%= Html.CheckBox("cbNewColors", true) %><label for="cbNewColors">New colors</label> 
在你的控制器

,做這樣的事情:

bool bChecked = form["cbNewColors"].Contains("true"); 
0

你必須做一些手工的工作,因爲MVC增加了隱藏字段對於每個複選框,並依靠模型聯編程序處理來自表單提交(如果已選中該框)的值true,false

假設你有你的觀點提供唯一的ID,我提出以下建議:

  1. 手動創建的複選框(即不使用HTML輔助)具有相同的名稱

    < INPUT TYPE = 「複選框」 名稱= 「通訊」 值= 「NL_ [ID]」 ID = 「NL_ [ID]」/> [名稱] < /標籤>

  2. 接受一個string[] newsletters參數到動作即處理帖子。 (您可以需要接受一個字符串,然後把它分解的逗號,我不記得array newslettersArray = newsletters.Split(',');;)

  3. 將字符串到通訊ID列表做這樣的事情:

    變種。IDS = newsletters.Select(N => int.Parse(n.Substring(2))ToList();

相關問題