确定路径是否为跨域

时间:2014-02-16 04:23:26

标签: c# asp.net asp.net-mvc asp.net-mvc-4 url

如何在Application_Start期间确定给定的虚拟路径在域内?

// Cross domain virtual path
"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"

// In app domain virtual path
"~/scripts/jquery/1.11.0/jquery.min.js" is not.

修改:

我可以使用

VirtualPathUtility.IsRelative()

2 个答案:

答案 0 :(得分:2)

不确定您要做什么,但您可以测试并查看该文件是否确实存在:

if (File.Exists(Server.MapPath(path)))
{
    //file is on the server
}

更新:如果您可以使用VirtualPathUtility.IsRelative()来回答您的问题:是的,您可以。每MSDN

  

返回一个布尔值,指示是否指定虚拟路径   与申请有关。

与我上面显示的不同之处是File.Exists如果文件实际上不存在则会返回false。对于相对的路径,VirtualPathUtility.IsRelative()将返回true,无论文件是否存在。

您使用的内容取决于您要完成的任务,这一点并不十分明确。

答案 1 :(得分:0)

你不能。

因为在Application_Start期间没有路径

Application_Start会在应用程序启动之前触发并处理页面,特别是在发送任何HTML之前。

顺便说一下,你所谈论的路径是并且必须是HTML输出的一部分....这是在视图中....这是非常非常非常非常非常非常早的处理。

为此,您首先需要确定需要运行控件的视图,该控件需要对需要启动应用程序的请求进行分析和路由 - 而最后一部分是您想要了解输出的位置。