Javascript 使用基于razor方法的URL

Javascript 使用基于razor方法的URL,javascript,jquery,asp.net-mvc,razor,Javascript,Jquery,Asp.net Mvc,Razor,我想重定向到特定页面。 为此,我在MVC项目中使用了一些Javascript函数,如下所示: function rootUrl(url) { var _rootUrl = '@Url.Content("~")'; var x = url; if (url.indexOf(_rootUrl) != 0) { x = _rootUrl + "/" + url

我想重定向到特定页面。 为此,我在MVC项目中使用了一些Javascript函数,如下所示:

function rootUrl(url) {                                                    
    var _rootUrl = '@Url.Content("~")';
    var x = url;
    if (url.indexOf(_rootUrl) != 0) {
        x = _rootUrl + "/" + url;
        x = x.replace(/\/\//g, "/").replace(/\/\//g, "/");
    }
    return x;
};
它被用作:

var url = rootUrl("Home/Company/") + $(this).val();
window.location.href = url;
但我的浏览器中的URL错误为::

http://localhost:60294/Home/Company/@Url.Content(%22~%22)/Home/Company/7

您无法访问Js文件中的razor。当我需要Js中Razor的URL时,我只需在
视图中定义它们,如:

<script>
    var _rootUrl = '@Url.Content("~")';
</script>

var_rootUrl='@Url.Content(“~”);

这将起作用,为什么不直接使用
Url.Action()
,它提供相对于根目录的Url,而不是创建一个javascript凌乱的函数:

var url = '@Url.Action("Company","Home")' + $(this).val();

这里,Home是控制器的名称,Company是它的动作

OP在js文件中提到了它?我希望是在js文件中定义的,因为在html视图中定义整个函数不是一个好的编码。否则剃须刀就不起作用了,否则结果永远不会是这样的“”