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



我正在从全局重写URL。Asax,允许显示特定位置的内容

在全局我这样做:

    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,

每次调用都失败。我最初认为这是因为我需要这样的东西(其中位置设置为值"lib")

  $.ajax({
      url: "lib/GetLinksForGroup",
      data: catId,

这永远不会完成(它会重新加载页面并为全局提供/lib/getlinksforgroup,但永远不会触发我的web方法。我猜是因为web方法在我的页面首页。但愿它永远找不到……

有谁能提供更好的方法吗?

您可以从重定向中过滤ajax调用。

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

最新更新