2010-07-08 73 views
8

我最近更新了我們的MVC 2項目,以使用區域,但是我在RedirectToAction方法中遇到了一些問題。RedirectToAction以外的區域

我們還有一些控制器等在我們的區域之外。這些控制器包括家庭控制器等。

如何從區域內向區域外的控制器執行RedirectToAction

我覺得像下面這樣可能會工作,但不會:

return RedirectToAction("Index", "Home", new { area = "" }); 

return RedirectToAction("Index", "Home", new { area = null }); 
+0

它的意思是你想移動到新的URL,在控制器之外?我正確嗎? – 2010-07-08 11:40:06

+0

我想重定向到當前區域之外的動作。 – 2010-07-08 11:41:20

回答

21

看來,我的原始解決方案:

return RedirectToAction("Index", "Home", new { area = "" }); 

確實INFACT工作。

我不知道我是如何設法讓它無法工作,但它似乎現在按預期工作。

另外值得注意的是,即使代碼工作正常,Visual Studio 2010仍然告訴我Cannot resolve action 'Index'

0

嘗試return RedirectToAction("Index", "Home", new {area = Nothing});

磨砂以上......

退房這裏link這裏。基本上我以爲你最初是在試圖在視圖中做這件事,而不是控制器行爲。由於我看到這是一個控制器操作,因此您必須使用RedirectToRoute來更改當前區域。

+0

我認爲沒有什麼是VB.NET的東西。我正在使用C#。無論如何,我試過它,但是,它不起作用。 – 2010-07-08 12:12:37

+0

確實如此,猜猜C#標記應該讓我知道其他語言:)反正,找到了一些額外的信息供您檢查。 – Tommy 2010-07-08 12:42:43

+0

謝謝你的幫助湯米。在Google上找到它之後,我確實嘗試了RedirectToRoutes,它確實有效!我也發現,自從我的RedirectToAction代碼開始工作以來,我的問題有點無效 - 我必須做一些愚蠢的事來阻止它的工作,但我不確定是什麼。 – 2010-07-08 13:07:53