javascript
  • asp.net-mvc-3
  • 2012-08-06 48 views 0 likes 
    0

    URl.Action正在生成一个查询字符串,它可以在IE8上运行,但在通过日期时不会在Chrome上运行。Url.Action正在生成非跨浏览器友好的网址

    这是我们的代码。

    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 
    

    我认为我们正在做的事情愚蠢,它的生成是这样,因为这一点,但我想不出什么我们做错了。

    任何帮助,非常感谢。

    +0

    听起来很奇怪。应该是有效的URL – mplungjan 2012-08-06 21:15:14

    回答

    0

    它看起来像你的字符串是越来越编码。尝试用@ Html.Raw()包装Url.Action()调用。

    +0

    这工作很好,解决了我的问题。 – 2012-08-07 15:06:18

    0

    如果它真的是越来越乱..

    为什么不直接使用..

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

    我们需要URL.Action中的实际路径行为,以便相同的代码在开发和QA和发布服务器上工作。如果我们硬编码,我们必须自己做。 – 2012-08-06 21:51:46

    +0

    嗯......'Server.MapPath()'在这里没用吗?只是建议.. – 2012-08-07 05:24:12

    相关问题