使用URL.Action时的路由问题
所有,
我在控制器上定义了以下路由/操作:
[RoutePrefix("widgets/download-functions")] [Route("download/{publishedReportId}"), HttpGet] public ActionResult Download(int publishedReportId)
在我的js代码中,我想用适当的id创建一些路由。
这就是我在js代码中的内容(不起作用)。 我错过了什么?
self.downloadFile = function (data) { console.log(data); console.log("@(Url.Action("Download", new { publishedReportId = 9999 }))"); console.log("@(Url.Action("Download"))"); };
这个东西和学习还是新手,我相信这很简单。
当我运行此代码时,我在控制台中获得以下内容
控制台输出
谢谢jonpfl
如果你正在使用Url.Action,它没有利用属性路由,你将需要遵循原来的路由方法,即使用,Action,Controller,area和params来获取扩展方法来生成url 。
[RoutePrefix("widgets/download-functions")] public class WidgetDownloadController : Controller
…
[Route("download/{publishedReportId}"), HttpGet] public ActionResult Download(int publishedReportId)
你会得到一个Url.Action,如:
console.log("@(Url.Action("Download","WidgetDownload", new { publishedReportId = 9999 }))");
此外,这仅适用于由剃刀引擎解析的脚本,即。 直接在视图中编写的脚本。