2010-04-15 74 views
0

我有一個問題,我有一個局部視圖,返回一些要顯示的HTML。當使用jquery在頁面上點擊某物時調用它。問題是,無論我怎樣稱呼它,即使報告成功,我也會返回一個空字符串。這發生在我身上使用Chrome瀏覽器,違揹我的本地機器。使用jquery調用MVC2部分視圖返回空字符串

我的控制器看起來是這樣的:

public ActionResult MyPartialView() 
{ 
    return PartialView(model); 
} 

我一直在使用獲得()。員額()和.load()試圖jQuery和所有具有相同的結果。以下是使用.post()的示例:

$.post(url, function (data) 
{ 
    alert(data); 
}); 

結果總是以空字符串的形式返回。我可以手動導航到瀏覽器中的部分視圖,並找回所需的HTML。我用來調用它的URL我完全解決了,所以它看起來像「http://localhost/controller/mypartialview」,而不是使用我認爲是原始問題的「/ controller/mypartialview」的相對路徑。任何想法可能會導致這種情況?

回答

0

我想通了。起初我以爲我必須從http://開始完全解析URL,但我不小心忘記了包含visual studio webserver使用的端口。它只是使用http://localhost/而不是http://localhost:2858/作爲基礎。一旦我改回它來使用相對路徑,它開始工作。我猜jQuery根據當前頁面的ajax方法中的url解析你的相對路徑。

0

很難說出問題所在。如果您在通過瀏覽器訪問相同的URL時有正確的html視圖,這意味着您的服務器端很適合(使用HTTP GET)。

  • 那麼我會說這個問題是在jQuery的使用。嘗試將url編碼到jQuery代碼中,以確保jQuery獲取正確的url。

    $.get( 'http://localhost/controller/mypartialview', function(data){ alert(data); } );

  • 你設置$.ajax全局選項? (並不是說你需要,也許你之前設置了一些東西,這就搞亂了你的新請求)

  • 確保在通過瀏覽器加入時不發送任何查詢。這可能會使它通過瀏覽器而不是通過jQuery。

我絕對推薦你安裝火狐螢火蟲,做你的AJAX請求的更好的調試。

+0

我會試一試。我使用了Chrome開發人員工具,並在資源選項卡中查看了請求。它顯示響應正確,但沒有響應。非常奇怪。我想知道它是否與使用Visual Studio宿主進程而不是IIS有關。 – Jason 2010-04-15 17:22:04