2016-03-22 91 views
-1

在我的應用程序中,我需要傳遞一些對象從視圖到另一個控制器。一切工作正常,但是作爲這個對象的一部分的表總是空的,即使它在視圖中填充正確。讓我告訴代碼:空表時,從視圖傳遞對象到控制器在ASP.MVC

的觀點:

var loadNumber = @(Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model.LoadNumber))); 
var data = @(Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model.Stops))); 
var url = '@Url.Action("ReportViewer","LoadReport")'; 


var criteria = {LoadNumber: loadNumber,Stops: []}; 
for (var i = 0; i <= selected.length - 1; i++) { 
    var id = selected[i].cells[1].innerText; 
    for (var j = data.length - 1; j >= 0 ; j--) { 
     if (data[j].StopmstSequence == id) { 
      criteria.Stops.push(data[j].StopID); 
      break; 
     } 
    } 
} 
window.open($.param.querystring(url, criteria)); 

在這一部分中一切正常。標準對象填充良好。

控制器:

public ActionResult ReportViewer(Criteria criteria) 
{ 
    return View(); 
} 

當然,這是CONTROLER大得多,但我不能顯示的其餘代碼(條件對象是最重要的)

Criteria類:

public class Criteria 
{ 
    public string LoadNumber { get; set; } 
    public string[] Stops { get; set; } 
} 

現在在運行代碼後查看Criteria控制器中的對象有LoadNumer設置正確,但Stops總是null。我試圖從string[]更改爲List<string>甚至IEnumerable<string>,但總是有相同的結果。有人能知道爲什麼嗎?

+0

如果檢查'data'和'url'中呈現的HTML,他們是正確的價值觀? –

+0

是的,即使在'window.open($。param.querystring(url,criteria));'所有的數據都是正確的 – Aht

+0

你的'param.querystring()'函數是什麼?它的輸出是什麼?爲了綁定到你的方法參數,你需要'.../ReportViewer?LoadNumber = someValue&Stops = someValue&Stops = someValue' –

回答

相關問題