我正在从global.asax重写一个URL,以允许显示特定位置的内容。
在全球范围内,我这样做:
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (originalPath.Contains("/" + location))
{
Context.RewritePath(originalPath.Replace("/" + location, "/frontpage.aspx?location=" + location));
}
}
所以我从呈现的URL中拾取位置,然后将其作为查询字符串中的参数传递。
我的ajax电话看起来像这样:
$.ajax({
url: "frontpage.aspx/GetLinksForGroup",
data: catId,
此调用每次都失败。我原本以为这是因为我需要这样的东西(where location设置为值“lib”)
$.ajax({
url: "lib/GetLinksForGroup",
data: catId,
这永远不会完成(它重新加载页面并使用/ lib / getlinksforgroup提供我的全局但从不触发我的web方法。我猜测因为web方法在我的页面frontpage.aspx上它永远不会找到它.. < / p>
任何人都可以提供更好的方法吗?
答案 0 :(得分:0)
您可以过滤掉重定向的ajax调用。
if (originalPath.Contains("/" + location) && !originalPath.Contains("GetLinksForGroup")))
Context.RewritePath(originalPath.Replace("/" + location, "/frontpage.aspx?location=" + location));