@ Url.action强制转换异常

时间:2013-04-05 22:32:57

标签: c#-4.0 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 ='Week',reportDate ='reportDate'我一直得到未处理的强制转换异常。如果我没有reportType和reportDate,它的工作正常。怎么解决这个烂摊子?任何帮助将不胜感激。

谢谢 NIKHIL

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试将C#方法的返回值分配给javascript变量,然后将其中的一部分替换为另一个javascript变量。如果我错了,请纠正我。

你需要仔细研究并找出你所写的内容。它不会起作用,因为您使用的是单引号而不是双引号,而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更改为预期的格式。