ASP.net Razor MVC 获取 URL 并将其放在 javascript 标签内

ASP.net Razor MVC get URL and place it within javascript tags

嘿,我的 Razor cshtml 页面中有以下代码:

<script type="text/javascript">
   @{<text>var ajaxDirPath = </text>Url.Content("~/") + ViewContext.RouteData.Values["controller"].ToString() + <text>';</text>}
</script>

目前我在 ..("~/") ViewContex... 上有一个错误代码说:

Invalid expression term 'if'

; expected

我尝试了很多方法,但似乎没有任何效果。格式化它的正确方法是什么,所以它像这样出现:

var ajaxDirPath = '/baseName/viewName/';

终于明白了:)

<script type="text/javascript">
   @{<text>var ajaxDirPath = '@Url.Content("~/")@ViewContext.RouteData.Values["controller"].ToString()/';</text>}
</script>

我认为有一种更简洁的方法可以完成您在上面的回答中描述的内容。

将此代码添加到您的视图中

@{
    var path = $"/{ViewContext.RouteData.Values["controller"]}/{ViewContext.RouteData.Values["action"]}";
}

然后在您视图的脚本部分

<script type="text/javascript">
    var ajaxdirpath = '@path';
</script>

这为您提供了您正在寻找的 /"controller"/"action",并且不会弄乱您的 javascript。您可以将 razor 语法的那部分与任何其他变量声明一起移到上面,这样它们就可以保持在一起。