2012-07-16 74 views
0

我的jQuery $ .post調用在我的環境中正常工作。但在生產,$ .posts被神祕地正在變成入眼,返回404

開發電話: .post的$( '/主頁/ Destaques') (調用工作正常)

生產電話: .post的$( '/主頁/ Destaques')產生 GET /主頁/ Destaques/404(未找到)

有響應報頭,即差異:

開發: 服務器:Microsoft-IIS /7.0 X-AspN ET-版本:4.0.30319 X-AspNetMvc-版本:2.0

製作: 服務器:Microsoft-IIS/6.0 X-ASPNET-版本:2.0.50727 (無AspNetMvc頭)

爲什麼POST會成爲GET嗎?

+0

我認爲這是因爲相對網址的變化。 – 2012-07-16 14:25:38

+0

如果不明白,請使用Action Attribute。對於Destaques是行動,使用[HttpPost] – 2012-07-16 14:47:46

+0

@jSang我認爲相對的網址是一樣的:/ Home/Destaques? – pedroos 2012-07-16 16:29:19

回答

1

指定位置時使用@Url.Action。這是發生問題的最好例子,並且在MVC中引入了Url.Action的主要原因。

編輯 -

哥們看看會發生什麼是我們使用Url.Action或Url.Content爲同一目的堂妹它部署可能不是到根本身的方式。

類比可以被映射到 - 當你在到達目的地的途徑之間的某個地方迷路了,並且你問別人到目的地的方式時,他解答了{右 - 右 - 左 - 右}並且你在那裏。但是,如果你不在同一點並按照這種方式行事,這可能不起作用。

因此,對於服務器它發生相同。當它在子網站上時,它無法找到出路,因爲深度級別不同,並且在您更改它開始工作時。所以,AFAIK就是這樣。

閱讀Url.Action文檔。舉個例子:Scott Guthrie's(MVC GURU) blog

+0

+1會建議(並在許多場合)正確的這種補救 – 2012-07-16 15:20:49

+0

我認爲在這種情況下,位置是好的:/家庭/ Destaques在這兩個環境中都有。 – pedroos 2012-07-16 16:34:42

+1

@PedroSobota - 這是發生在只有這個動作或其他行動得到解決嗎?部署過程中是否添加了處理MVC路由的處理程序?由於您的本地是IIS/7.0和生產是 - IIS 6.0。在IIS 6上部署時有一些修改,它本身不支持URL路由。一個處理程序將被添加。 – bhuvin 2012-07-17 06:09:54