【问题标题】:@Url.action cast exception@Url.action 强制转换异常
【发布时间】:2023-03-19 23:35:01
【问题描述】:

我正在尝试在要单击的链接上实现 @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,它工作正常。如何解决这个烂摊子?任何帮助将不胜感激。

谢谢 尼基尔

【问题讨论】:

  • dateString 中有什么内容?能给我们举个例子吗?
  • 另外,WeekreportDate 不应双引号,因为它们是 strings 而不是 chars。
  • 我是 asp.net 新手,我不确定我写的是否正确。

标签: c#-4.0 url.action


【解决方案1】:

您似乎正在尝试将 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 更改为预期格式。

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 2015-09-09
    • 2015-12-13
    相关资源
    最近更新 更多