-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>
,但總是有相同的結果。有人能知道爲什麼嗎?
如果檢查'data'和'url'中呈現的HTML,他們是正確的價值觀? –
是的,即使在'window.open($。param.querystring(url,criteria));'所有的數據都是正確的 – Aht
你的'param.querystring()'函數是什麼?它的輸出是什麼?爲了綁定到你的方法參數,你需要'.../ReportViewer?LoadNumber = someValue&Stops = someValue&Stops = someValue' –