-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' –