[英]MVC Call new Action and View from Javascript and send Array
我目前在網格中有一個IEnumerable視圖,並添加了復選框,以允許我選擇項目(我通過JavaScript捕獲ID並構建僅ID組成的數組)。
我有一個按鈕,應該將數組發送到新動作並加載相應的視圖。
我首先嘗試通過可以工作的JSON對象發送數組,但是我無法讓控制器加載新視圖,它只是將結果返回到當前視圖(不是我想要的)。
所以我現在只是嘗試以下方法:
window.location.href = '/TeamSelector/TeamList?array=' +SwimmerList;
這正在工作,但是對象未正確發送,因為我在控制器端的數組中什么也沒收到。
public ActionResult TeamList (List<int> Array)
{
// Do something here
return view(results)
}
有人可以建議我如何構造JavaScript代碼以發送數組,以便控制器將其接受。
任何建議/建議將不勝感激。
安迪。
為了將值的集合發回給具有簽名的GET方法
public ActionResult TeamList (List<int> Array)
您的網址必須是
/TeamSelector/TeamList?array=1&array=2&array=3 // etc
實現此目的的一種方法是(假設您的復選框具有class="checkbox"
)
location.href = '/TeamSelector/TeamList?array=' + $('.checkbox:checked').map(function () {
return $(this).val();
}).get().join('&array=');
感謝Stephen和他的回答,我寫了一個基本的腳本來使用數組數據構建url,現在一切都可以正常工作了。
var url = '/TeamSelector/TeamList?';
for (var i = 0; i < SwimmerList.length; i++)
{
if (i == 0) {
url = url + 'array=' + SwimmerList[i];
} else {
url = url + '&array=' + SwimmerList[i];
}
}
window.location.href = url;
由於我使用了Grid.MVC,因此我一直不願意使用該復選框並獲取它們的狀態,因此我最終在該復選框上添加了一個單擊按鈕,並以此方式控制它來構建數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.