2014-06-18 45 views
0

我正在從我的global.asax中重寫一個URL,以允許顯示位置特定的內容。全局asax重寫路徑停止ajax執行

在全球我這樣做:

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方法是我的網頁frontpage.aspx它永遠不會找到它..

任何人都可以提供這樣做的更好的方式??

+0

Hello Bruceiow:我的項目與我的項目有相同的問題,從1個月開始尋求幫助,請分享您的解決方案,以便我可以挖掘出一些東西。在我的項目中,我正在嘗試調用webmethod但不工作。這裏有2個演示鏈接,當你點擊第二個或第三個文本框時,它可以讓你編輯文本並保存到數據庫(調用webmethod和保存數據)。 jasbir.bhinderblink.com(** webmethod不工作**),bhinderblink.com/users/jasbir/default.aspx(** webmethod工作**)。兩者都調用同一頁面。 –

回答

0

您可以過濾阿賈克斯呼叫轉出。

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