【问题标题】:Does ASP.net MVC 4 have some standardized way of referring to relative paths in JavaScript?ASP.net MVC 4 是否有一些标准化的方式来引用 JavaScript 中的相对路径?
【发布时间】:2013-02-05 17:36:12
【问题描述】:

我正在开发一个 ASP.net MVC 应用程序。我真正喜欢 ASP.net MVC 的一件事是它允许您在服务器端代码中引用相对路径的方式。我想知道在客户端代码中是否有一些标准化的方法。

我有办法做到这一点。我在布局页面中写了以下内容。

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

将此作为布局页面中的第一个脚本,我可以使用 ApplicationPath 变量引用来自任何 .js 文件的相对路径。这似乎工作得很好,但我想知道是否有一些内置的方式来处理 JavaScript 中的相对路径。这对我很有效,但其他人可能会使用不同的约定。

ASP.net MVC 4 是否有一些标准化的方式来引用 JavaScript 中的相对路径?

【问题讨论】:

  • 我也在寻找解决方案。你有没有找到更清洁的方法?您如何看待使用 cookie 并在 javascript 中读取 cookie 以便不需要单独的脚本?

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


【解决方案1】:

我通常在我的母版页标题中这样做:

<script type="text/javscript">
    var conf = { baseUrl: '<%=VirtualPathUtility.ToAbsolute("~/")%>' };
</script>

然后,你可以在 js 中的任何其他地方使用:

var fullUrl = conf.baseUrl + '/somePath';

此外,您始终可以使用以下方式在 JS 中获取基域:

var baseUrl = window.location.hostname;

【讨论】:

  • 这不是我要找的答案。您的回答与我在这里提出的非常相似。我想知道的是框架是否有一些内置机制来处理这个问题。
  • 如果 .NET 框架有办法改变客户端浏览器的 javascript 实现?
  • ASP.net 确实在 JavaScript 中创建了一些变量和函数,允许您引用一些服务器端的东西。 __doPostBack 可能是其中最著名的。我想知道是否可能有一些其他的由框架创建的函数或变量,我可以参考并指望它在那里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
相关资源
最近更新 更多