2013-04-05 207 views
1

我試圖在要點擊的鏈接上實現@ Url.Action。@ Url.action拋出異常

link = "@Url.Action("ExportWeeklyTimesheetPDF", "Hours", new { projectId = Model.ProjectId, reportType = 'Week', reportDate = 'reportDate'})" 
link.replace("reportDate",dateString); 
$("#exportPDF").attr("href", link); 

當我嘗試添加,REPORTTYPE = '周',reportDate = 'reportDate' 我不斷收到未處理的轉換異常。如果我沒有reportType和reportDate,它的工作正常。如何解決這個爛攤子?任何幫助,將不勝感激。

謝謝 尼基爾

+0

'dateString'中有什麼?你能舉一個例子嗎? – mattytommo 2013-04-05 22:35:39

+0

另外,不應該''Week'和'reportDate'被雙引號,因爲它們是字符串而不是'char's。 – jmoerdyk 2013-04-05 22:38:31

+0

我是新來的asp.net 我不知道我寫的是對的。 – 2013-04-05 22:58:29

回答

0

看來你想在C#方法的返回值分配給一個JavaScript變量,然後用另一個JavaScript變量替換它的一部分。如我錯了請糾正我。

您需要仔細觀察並確定您所寫的內容。它不會工作,因爲您使用的是單引號而不是double,並且javascript link.replace行只會替換第一個reportDate實例。

此代碼應工作:

@{ 
    string url = Url.Action("ExportWeeklyTimesheetPDF", "Hours", new { projectId = Model.ProjectId, reportType = "Week", reportDate = "replaceWithReportDate"}); 
} 

link = "@url"; 
link.replace("replaceWithReportDate", dateString); 
$("#exportPDF").attr("href", link); 

你仍然需要確保replaceWithReportDate中生成的鏈接改爲預期的格式。