2009-11-08 132 views
0

我是一个web开发新手,所以我有一些问题,首先什么是〜,/在网址上的意思是什么?我真正的问题在我的javascript代码我在做一些Ajax调用使用jQuery像资源的url路径

$.ajax({ 
     ... 
     url: '/Membership/Login', 
     ... 
    }); 

没有与我需要将数据发送到一个登录操作方法的成员控制器。当我将这个项目发布到IIS(我的应用程序位于wwwroot的xxx文件夹下)时,我得到了错误的URL地址。

我得到:

http://localhost/Membership/Login 

我期待:(因为我的应用程序是在XXX文件夹)

http://localhost/xxx/Membership/Login 

注:我不想XXX添加到所有的URL。

回答

2

在URL中使用〜并调用ResolveUrl方法时,它将放入应用程序的路径。您可以通过在你的aspx页面做到这一点:

<%=ResolveUrl("~/Membership/Login")%> 

这会给你的路径

/xxx/Membership/Login 

,你现在就可以给你的JavaScript。

+0

我不能使用<% %>语法,因为js代码在.js文件中,有没有关于这个的任何建议。 – Yucel 2009-11-09 10:53:36

+0

通常你必须从你的aspx页面创建一个对象或调用一个方法,所以在该页面上使用<% %>并将url作为参数传递给你的js。 – 2009-11-09 10:56:08

0

当你使用表格“/ some/url”时,你说带我去那个URL的web服务器根目录。如果您想避免将“xxx”添加到您的URL,您需要更改Web服务器根目录,在IIS中为该名称创建域名和规则,或者使用某种函数调用来生成要使用的URL。

这三者中最容易的是更改服务器上的webroot。

1

使用斜杠会使网址相对于Web服务器的根目录。如果你想要它相对于当前的网址,只需删除斜杠字符。尽管代字号字符在ASP.NET(和UNIX路径)中的服务器端控件中有意义,但它在URL中没有特殊含义。在ASP.NET的上下文中,它意味着将相对于应用程序的路径,可能或不可能是Web服务器根目录。在你的标记中,它应该被删除,或者不被你使用,或者只在被ASP.NET框架取代的上下文中使用,例如服务器端控件。