使用基于razor方法的URL

时间:2014-09-29 10:37:32

标签: 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;
        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

2 个答案:

答案 0 :(得分:1)

您无法在Js文件中访问razor。当我在Js中需要来自Razor的网址时,我只需在view中定义它们,例如:

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

这将有效

答案 1 :(得分:1)

为什么不直接使用Url.Action()来提供相对于根目录的url,而不是创建一个javascript乱码函数:

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

此处,主页是Controller的名称,公司是其行动