2014-03-28 88 views
0

我想呈现一个Infragistics网格作为我的视图在我的MVC应用程序的一部分。不过,我想做到以下几点:Razor MVC Infragistics查看

@(Html.Infragistics() 
     .Grid(Model) 
     .ID("grid") 
     .Width("100%") 
     .Height("500px") 
     .PrimaryKey("ID") 
     .AutoGenerateColumns(false) 
     .AutoGenerateLayouts(false) 
     .Columns(column => 
     { 
      column.For(x => x.omkt).HeaderText("OMKT").Width("30%"); 
      column.For(x => x.dmkt).HeaderText("DMKT").Width("30%"); 
      column.For(x => x.ibu).HeaderText("IBU").Width("20%"); 
      column.For(x => x.count_total).HeaderText("COUNT_ALL").Width("20%"); 
     }) 
     .Features(features => 
     { 
      features.Sorting().Type(OpType.Remote); 
      features.Paging().Type(OpType.Remote); 
      features.Filtering().Type(OpType.Remote); 
     }) 
     .DataSourceUrl(Url.Action("GetMarketAreaData?ibu=" + ViewBag.IBU + "&sort=" + ViewBag.sort + "&startDate=" + ViewBag.startDate + "&endDate=" + ViewBag.endDate)) 
     .Render() 
    ) 

的问题是在DataSourceUrl线,在那里它转化所有?&字符到他们的转义序列。使用\也不起作用,因为我得到了无法识别的转义序列的解析器错误。我之所以需要这个,是因为所有这些都是作为参数传递到控制器函数中以便提取正确的数据。

因此,我在获取数据时遇到了400错误。有什么办法可以强制这个行动去认出吗?字符为?字符?

回答

4

找到答案:我需要传入第二个参数到Url.Action中,并带有所有参数。

.DataSourceUrl(Url.Action("GetMarketAreaData", new { ibu = ViewBag.IBU, sort = ViewBag.sort, startDate = ViewBag.startDate, endDate = ViewBag.endDate }))