所以我在這裏看到this question這個,但它並沒有真正解決這個問題給我。ASP.NET MVC 3 + Razor錯誤:不允許子動作執行重定向動作
我有一個ASP.NET MVC 3 + Razor應用程序,運行在我的開發電腦上的IIS5上,然後是我的開發Web服務器的IIS6。一切工作很好,直到我部署它。我正在部署所有的東西,在這方面沒有問題(我可以說)。
現在我得到這個子操作不允許在我的頁面上執行重定向操作錯誤。我不確定如何查明它失敗的位置。
我使用@ Html.Action在某些下拉框與數據拉:
public ActionResult Hierarchy()
{
List<Store> storeList = DBService.getStores();
if (DBService.Error != null)
return RedirectToError(DBService.Error);
List<Department> deptList = DBService.getDepts();
if (DBService.Error != null)
return RedirectToError(DBService.Error);
VM_Hierarchy hierarchy = new VM_Hierarchy(storeList, deptList);
return View(hierarchy);
}
如果我刪除@ Html.Action線,頁面將呈現。然後,將打破,如果我做一個AJAX請求到一個控制器動作像這樣:
[HttpPost]
public ActionResult InventoryList(string fromDate, string toDate)
{
List<Inventory> inventories = DBService.getInventories(fromDate, toDate);
if (DBService.Error != null)
return RedirectToAction("Error");
return View(inventories);
}
如果這是不正確的,我怎麼重定向到一個錯誤頁面或規定在獲取返回什麼看法張貼?任何幫助表示讚賞。謝謝。
因此,假設重定向都發生在服務器上,它只是發回新頁面的HTML是錯誤的嗎?我不想實際重定向頁面,只是執行不同的操作併發回不同的視圖。 – IronicMuffin 2011-04-13 15:55:06
那麼,從控制器重定向都在服務器上,問題是你從一個子動作或AJAX調用重定向 - 在這兩種情況下,頁面的一部分已經存在,並且你不能只在頁面中間。 – 2011-04-13 15:59:09
我想我不會效仿。我想我要麼獲取原始視圖的HTML或新的視圖的HTML呈現到頁面。我看不出問題在哪裏。我想我會回發JavaScript的部分?如何根據服務器端發生的情況選擇要加載的部分? – IronicMuffin 2011-04-13 16:04:32