2016-03-22 92 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' –

回答

相关问题