全局asax重写路径停止ajax执行

时间:2014-06-18 12:36:22

标签: jquery ajax webforms global

我正在从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>

任何人都可以提供更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以过滤掉重定向的ajax调用。

if (originalPath.Contains("/" + location) && !originalPath.Contains("GetLinksForGroup")))
    Context.RewritePath(originalPath.Replace("/" + location, "/frontpage.aspx?location=" + location));