如果从localhost:nnnn / Class页面点击一个将发布到'Class / AddClass'的AJAX链接,我会得到一个Class / AddClass的RawUrl,它的工作正常。
如果从页面localhost:nnnn / Class / Index我单击相同的链接,我得到一个Class / Class / AddClass的RawUrl,它(显然)不起作用。
我意识到我在路由地狱,但谁在重写URL以及为什么?我煞费苦心地介绍了jQuery代码,实际上它已发布到Class / AddClass。
感谢您的见解...... 埃里克
答案 0 :(得分:3)
这不是重写问题。您的AJAX请求是JavaScript,与ASP.NET路由引擎无关。当您使用Class/AddClass
时,您将使其相对于当前网址的位置。您可以使用/Class/AddClass
来解析网站的根目录。如果您甚至在虚拟目录中,这会产生问题。我更喜欢从配置文件中提取完整的URL:
var url = '<%: ConfigurationManager.AppSettings["WebsiteURL"] %>/Class/AddClass';
使用web.config中的相应条目。这消除了任何猜测工作。您也可以使用ResolveUrl
:
var url = '<%: ResolveUrl("/Class/AddClass") %>';