Url.Action正在生成非跨浏览器友好的网址

时间:2012-08-06 21:07:39

标签: javascript asp.net-mvc-3

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

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

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

为什么不直接使用..

var href = "/ReportsScheduling/ClassAssignmentLoadSummaryReport?PdfOrExcel=blah&RptDate=blahDate"

答案 1 :(得分:0)

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