簡體   English   中英

MVC從Javascript調用新的Action和View並發送數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM