0

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

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

但是,如果我有菜单并且尝试点击主页图标,我会在 web 的新 mvc 部分中获取 url,但找不到页面:

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

实际的主页 aspx 页面位于 \MyWeb.Web.App\mvc\Home.aspx 位置

我目前对我可以在 JS href 中编辑什么以使其指向该位置感到困惑,因此这些图标将在现有实现和新的 MVC 中工作。

谢谢。

4

1 回答 1

1

使用 urls 助手。例如,如果您使用的是 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\"'

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

于 2012-07-05T10:24:41.447 回答