2010-05-27 57 views
0

我在ASP.NET MVC項目中遇到了重定向問題。我通過LINQtoSQL映射了表,並且每個表都有唯一的ID作爲主鍵。ASP.NET MVC - 錯誤的重定向,如何調試?

我正在執行'CREATE'的功能。基本上,在將新值添加到SQL表(這意味着我按下保存按鈕)之後,我想將其重定向到此新添加項的詳細信息。

下面是一些代碼如何,我這樣做:

[AcceptVerbs(HttpVerbs.Post), Authorize] 
public ActionResult Create(Item item) { 
.... 
return RedirectToAction("Details", new { id = item.ItemID }); 

麻煩的是,我從來沒有重定向到詳細信息視圖(我有一個項目Details.aspx視圖)。

當我檢查CallHierarchy在Visual Studio(2010 PRO)的層次確實有些奇怪,像這樣:

RedirectToAction(字符串對象)

  • 呼籲要 'RedirectToAction'
    • 創建
      • 呼叫創建(無結果ts)
      • 來自Create的調用(創建實例的方法。從那裏,我會回來「RedirectToAction」和「調用來創建」和「呼籲從創建」等等,等等 - 環
    • 編輯
  • 呼籲從「RedirectToAction」
    • 不支持

我尋找一些工具或更具體的「懂得」(因爲VS可能有一些牛逼ools)來調試這種情況。

PS:生根是默認: 「{控制器}/{行動}/{ID}」,

感謝

回答

1

Checck你的路由與Phil Haack's Route Debugger。確保正在使用正確的路由,並調用正確的控制器方法。

+0

我會試試看,謝謝 – Xorty 2010-05-27 20:20:57

+0

不幸的是,它似乎不適合我。我將RouteDebug.dll放入bin文件夾,但VS不知道RouteDebug類... – Xorty 2010-05-27 20:37:41

+0

您必須將RouteDebug.DLL添加到Visual Studio中的引用中,然後按照Phil Haack的指示將其修補到global.asax中。 – 2010-05-27 20:43:34

0

您需要在同一個控制器

public ActionResult Details(int id) 
{ 
    return View(); 
} 

在additon到Details.aspx視圖。

+0

是的,我有... – Xorty 2010-05-27 20:19:54

+0

細節工作,但我創建新項目後沒有重定向 – Xorty 2010-05-27 20:20:25

0

使用調試器步進到RedirectToAction被調用的行。確認該線是真正被擊中的。按F5後繼續。

代碼執行後,如果發出302,檢查網絡下的Firebug。 查看請求的詳細信息。

如果沒有302發出,我會嘗試return RedirectToAction("Index")只是爲了知道對細節的調用是錯誤還是有另一個錯誤。