2013-12-13 115 views
0

我剛剛在我的機器上運行的IIS發佈了一個本地Intranet。該網站是一個MVC 4應用程序。它具有以下jQuery代碼來執行底層數據庫表的AJAX更新以及顯示各種數據庫表格元素的網格刷新。Ajax更新在調試模式下工作,但不在IIS中

var printermapping = 
      { 
       "MTPrinterID": MTPrinterID, 
       "NTPrinterID": NTPrinterID, 
       "Active": "N" 
      }; 

     $.ajax({ 
      url: '/Home/UpdatePrinterMapping/', 
      data: JSON.stringify(printermapping), 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
      success: function (response) { 
       gridContent.load('/Home/ #gridContent', function() { 
        showHideButtons(gridContent); 
       }); 
      } 
     }); 


function showHideButtons(grid) { 
grid.find('tr.webgrid-row-style, tr.webgrid-alternating-row').each(function() { 
    var th = $(this); 
    var Active = th.find("#lblActive1").text(); 
    if (Active == "Y") { 
     th.find('.activate').hide(); 
    } else { 
     th.find('.deactivate').hide(); 
    } 
}); 

當我在調試模式下通過VSE 2013 for Web在本地運行時,一切正常。但是當我輸入一個URL從我的IIS中運行它時,showHideButtons很好地工作,但AJAX更新不再起作用。非常困惑。任何人都可以闡明可能是什麼問題?非常感謝。

+0

我應該補充說我正在運行IIS版本7.5 – user3041439

回答

0

我爲調試和IIS版本的頁面源做了一個WinDiff。我注意到以下。

Debug版本: 形式行動= 「/首頁/創建」 方法= 「郵報」 IIS版本: 形式行動= 「/ EFRMPRTEST /主頁/創建」 方法= 「郵報」 (有一些標籤移除)

所以我修改了我的jQuery函數,把/ EFRMPRTEST放在加載函數的/ Home/#gridContent前面。現在看起來像:

var printermapping = 
      { 
       "MTPrinterID": MTPrinterID, 
       "NTPrinterID": NTPrinterID, 
       "Active": "Y" 
      }; 

     $.ajax({ 
      url: '/Home/UpdatePrinterMapping/', 
      data: JSON.stringify(printermapping), 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
      success: function (response) { 
       gridContent.load('/EFRMPRTEST/Home/ #gridContent', function() { 
        showHideButtons(gridContent); 
       }); 
      } 
     }); 

現在IIS版本就像一個魅力。

0

我有一個類似的問題。我從一個指定的網站(不是DefaultWebSite)運行一個Web應用程序。我發現我的ajax調用需要從網站的路徑,而不是網絡應用程序。我試過上面的解決方案,它的工作。但是,我感覺我每次移動到不同服務器上的其他網站時都無法更改網址。所以我嘗試使用在我的情況下工作的Url.Action()。我懷疑它會爲上述用戶的gridContent.load('Url.Action('#gridContent','Home')',function(){showHideButtons(gridContent);});

相關問題