与JS onclick相对路径的网页URL链接?

时间:2012-07-05 10:20:45

标签: javascript asp.net asp.net-mvc-3

我有一个在ASP.Net中开发的旧的Web应用程序,其背后的旧类型代码。我最终将在ASP.Net MVC 3中重新完成完整的Web应用程序 - 刚开始完成第一部分并集成它们。我在顶部出现的菜单遇到了一些问题。所以在代码中有一个主页按钮,如下所示:

onclick='document.location.href=\"Home.aspx\"'>

但是我在网络的新mvc部分获取网址我有菜单,我尝试点击主页图标我找不到页面:

/MyWeb.Web.App/mvc/Controller/Home.aspx

实际的家庭aspx页面位于\ MyWeb.Web.App \ mvc \ Home.aspx

位置

我目前很难知道我可以在JS href中编辑什么来让它指向这个位置,这样图标就可以在现有的实现和新的MVC中工作。

感谢。

1 个答案:

答案 0 :(得分:1)

使用网址助手。例如,如果您使用的是Razor,并且此代码位于MVC视图中:

onclick='document.location.href="@Url.Content("~/mvc/home.aspx")"'>

或者如果您使用的是WebForms视图引擎:

onclick='document.location.href="<%= Url.Content("~/mvc/home.aspx") %>"'>

更新:

如果这是在一个单独的javascript文件中,那么您可以在Razor视图中声明一个指向基本URL的全局变量:

<script type="text/javascript">
    var baseUrl = '@Url.Content("~/mvc")';
</script>

然后在你的javascript文件中:

onclick='document.location.href=\"" + baseUrl + "/home.aspx\"'

当然有更好的方法可以实现这一目标,但由于您尚未提供有关您的方案的足够详细信息,因此很难建议最佳方案。例如,您可以在DOM或其​​他元素中使用HTML5 data-*属性来正确生成此URL并在您的javascript文件中访问它。