javascript
  • asp.net-mvc-3
  • 2012-08-06 46 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

    相關問題