2012-12-31 59 views
0

在一個ASP.NET頁面上,我有一個DataTable的投資者列表。該客戶希望添加一項功能,允許用戶從該列表中選擇個人投資者,並擁有一個電子郵件按鈕,該電子郵件按鈕將打開一個電子郵件頁面並使用投資者電子郵件填充密件抄送。到目前爲止,我已經完成了複選框,並且我正在成功地通過複選框並獲取僅限複選框的電子郵件。從這一點上,我完全喪失瞭如何將該日期發送到下一頁,並讓他們自動填寫密碼。這是我到目前爲止的代碼:在asp.net頁面之間傳遞複選框值

<a onclick="grabEmail()" href="/Settings/EmailSelect" class="button blue" >Email Selected</a> 
... 
... 
... 
<script type="text/javascript"> 
    function grabEmail() { 
    var emails = new Array(); 
    var $checked = $('[@id=investoremails:checked'); 
    $checked.each(function() { 
     emails.push($(this).val()); 
     alert($(this).val()); //This was just to check to make sure emails 
           //were grabbed 
    } 

    ); 

    $.ajax({ 
     url: '/Settings/EmailSelect/', 
     type: "POST", 
     data: emails, 
     traditional: true, 

    }); 
} 

然後,EmailSelect頁...

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "/Settings/EmailSelect", 
     error: function (xhr, status, error) { 
      $("#results").html("An error occurred: " + error).addClass("notification error"); 
      return false; 
     }, 
     success: function(response) { 
      if (response != null) { 
       if (!response.Successful) { 
        $("#results").html("An error occurred: " + response.Exception).addClass("notification error"); 
        return false; 
       } else { 
        $("#bcc").val(response.ReturnVal); 
       } 
      } 
     } 
    }); 
}); 

和一個控制器..

public ActionResult EmailSelect(string[] emails) 
    { 
     ViewData["Selected"] = emails; 
     return View(); 
    } 

我們有幾分相似的功能在這個方案投資者可以成爲用戶創建的羣組的一部分,並且還有另一個電子郵件頁面,用戶可以選擇要發送給特定羣組的電子郵件,並且我試圖將解決方案基於此問題解決(即使他們本質上不同..)。如果任何人都能指引我走向正確的方向,那會很棒!

+1

有一個令人信服的理由,你通過'JavaScript'完成了所有這些嗎?我會在服務器上完成所有這些工作,而不是在客戶端上。該按鈕不應該做任何事情,除了回發到服務器,其中,可以執行重定向。 – Servy

+0

您認爲您要通過的數據量的平均值和最大值是多少?如果它足夠低,我會把它放在一個查詢字符串中,但是如果你需要支持數百個電子郵件地址,這不是一個實際的選擇。 – Servy

+0

我有一位高級開發人員(在辦公室外工作)請求諮詢,他建議「類似的事情」。至於電子郵件的數量,最大可能是幾十個,所以我不相信一個查詢字符串可以工作 –

回答

0

我應該早一點回答這個問題,但是我忘了發佈它。

我做了一些關於MVC窗體的研究,以及它們如何與控制器進行交互,並且通過將複選框作爲字符串數組拉入控制器,然後將它們傳遞給下一頁在ViewData中。