這是一個非常奇怪的問題。我開發了一個小型MVC應用程序,並使用內置的開發服務器中的VS2008完成了測試,並且所有功能都符合我的預期。我現在已將解決方案移至IIS託管的位置,並在使用Ajax.ActionLink的視圖中看到不同的結果。Asp.Net MVC Ajax.ActionLink的行爲與使用內置的VS2008開發服務器向IIS託管時的行爲不同
actionlink鏈接到一個控制器動作,它返回一個局部視圖(.ascx)。在鏈接的AjaxOptions中,我指定了希望動作返回的部分視圖替換的DOM元素的UpdateTargetId。使用內置開發服務器運行應用程序時,行爲與預期的一樣 - > ajax調用成功返回partialview並替換指定的DOM元素。但是,當託管在IIS中時,控制器操作已成功執行,但結果會呈現在新頁面上,而不是替換指定的DOM元素。
這裏是頁面,這使得Ajax調用相關來源:
<% if (info.CurrentStatus != OrderStatus.Received &&
info.CurrentStatus != OrderStatus.Processing)
{ %>
<td><%= Ajax.ActionLink("Reprocess Order", "Reprocess",
new { generatedId = info.GeneratedId },
new AjaxOptions
{
UpdateTargetId = "success" + info.GeneratedId,
OnSuccess = "reprocessSuccess"
})%></td>
<% } %>
<td><%= Html.Div("success" + info.GeneratedId) %> </td>
這裏是它提供了局部視圖的操作:
[RequiresSearch()]
public ActionResult Reprocess(string generatedId)
{
if (RequestReprocessingOfOrder(generatedId))
{
ViewData["reprocessSuccess"] = "Reprocessing request successful. Order is queued for reprocessing";
}
else
{
ViewData["reprocessSuccess"] = "Reprocessing request failed. Please contact the administrator";
}
return PartialView();
}
任何幫助將不勝感激! !
編輯:我沒有很多mvc/ajax的經驗,所以我不確定在哪裏事件開始嘗試和解決這個問題,所以即使是尋找什麼的指針也會很棒。
這正是我所需要的。我花了幾個小時弄這個,直到我在這裏看到你的帖子。謝謝! – Baxter 2014-07-23 03:57:21