2010-08-23 138 views
1

我有一個Asp.Net mvc網絡應用程序,它有一個控制器動作來處理一個int作爲參數的職位。我已經在動作中設置了一個斷點,它永遠不會被擊中。這裏是控制器動作設置:Asp.Net MVC後控制器未被命中

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult AddTestNumber(int number) 
    { 

這裏是調用動作的jQuery:

$.post("/testController/AddTestNumber/852852"); 

我不帶參數的測試,它命中斷點。我沒有改變任何路由,所以這就設置爲默認。

這似乎應該是我俯瞰

回答

1

幾件事情來嘗試很簡單的解決方法:

您的網址並不需要包含「控制器」。 即

$.post("/Test/AddTestNumber/852852"); 

如果你想在參數是在URL,而不是在查詢字符串,並且使用的是默認的路由,那麼相信參數需要名爲「身份證」。 即

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult AddTestNumber(int id) 
{ 

否則,您需要通過查詢字符串傳遞它。 即

$.post("/Test/AddTestNumber?number=852852"); 

或添加自定義路由規則。

我希望其中的一位能幫助你。

0

是的修復很容易。如果你沒有改變路由,而不是int數,使用int id。 現在路由器尋找一個'號碼',但在你的網址你沒有一個號碼,只是一個ID。