0

URl.Action 正在以适用于 IE8 的方式生成查询字符串,但在传递日期时不适用于 Chrome。

这是我们的代码。

function RunReport( PdfOrExcel) 
{

 var ChartType = "Pdf";
 var argCounter = 0;
 linkUrl = '@Url.Action("ClassAssignmentLoadSummaryReport", "ReportsScheduling", new { PdfOrExcel="[1]", RptDate="[2]" } )';

 var objToSend = new Object();
 value = $('#RptDate').val()

 dataToSend.RptDate =value;

 linkUrl = linkUrl.replace("%5B1%5D", PdfOrExcel);
 linkUrl = linkUrl.replace("%5B2%5D", value );

 w = window.open(linkurl);
 w.focus();

}

(这有点难看,因为我们展开了几个函数来获取上面的代码)

它会生成一个这样的 url:

/appName/ReportsScheduling/ClassAssignmentLoadSummaryReport?PdfOrExcel=Pdf&RptDate=8/6/2012

如果我们像这样更改它,它在 Chrome 中就可以正常工作。

/appName/ReportsScheduling/ClassAssignmentLoadSummaryReport?PdfOrExcel=Pdf&RptDate=8/6/2012

我假设我们正在做一些愚蠢的事情,并且因此而以这种方式生成它,但我无法弄清楚我们做错了什么。

任何帮助是极大的赞赏。

4

2 回答 2

0

看起来您的字符串正在被编码。尝试使用 @Html.Raw() 包装 Url.Action() 调用。

于 2012-08-07T00:20:09.567 回答
0

如果它真的变得那么混乱..

为什么不直接使用..

var href = "/ReportsScheduling/ClassAssignmentLoadSummaryReport?PdfOrExcel=blah&RptDate=blahDate"
于 2012-08-06T21:25:36.810 回答