2009-08-04 112 views
2

我想學習MVC,並有一個粗略的開始。ASP.Net MVC路由不傳遞參數到控制器

routes.MapRoute(
     "Test", 
     "Test/{stringInput}", 
     new { controller = "Test", action = "TestMethod", stringInput = "" } 
); 

不傳遞stringInput到控制器中的方法TestMethod。它超過null。

不知道我錯過了什麼,它看起來很簡單直接。這條路線被放置在默認值以上。

+0

我已經跟着這個執行到控制器。路由設置正確,只是由於某種原因沒有將變量stringInput傳遞給控制器​​。 – James 2009-08-04 20:12:09

回答

3

覆蓋您的控制器的Execute方法,然後在其中放置一個斷點,以便您可以看到請求上下文。其中一個屬性是傳入的鍵/值對。確保stringInput的鍵具有正確的值。

+0

謝謝,這幫助我極大地弄清楚,我沒有在我的控制器方法的簽名中使用相同的參數名稱,這是問題... – James 2009-08-04 20:18:22

0

您確定路線是正在使用的路線嗎?嘗試將其移動到路線列表的頂部以確保。

+0

是的,我在調試器中關注它。 – James 2009-08-04 20:02:08

1

確保您的控制器安裝正確。它應該是在文件夾

 
Controllers/TestController.cs 

,並在控制器內應

 
public ActionResult TestMethod(string stringInput) 
{ 
    return View(); 
} 

它使用約定,所以在你的路線命名您的設置必須與控制器的文件,方法和參數。

的網址去,這應該是

 
/Test/TestMethod/MyStringInput 

和「MyStringInput」將是可變stringInput的價值。

相關問題