2013-08-30 85 views
0

我有一個調用控制器功能的小問題。奇怪的是,每個其他提交按鈕工作正常。但是這個問題我現在還不能解決。 我會告訴你兩個提交按鈕的形式,因爲只有一個工作正常。爲什麼提交按鈕不會調用控制器功能?

控制器:

public class MyController : Controller 
{ 
    public ActionResult MethodOne() 
     { 
      ... 
      return RedirectToAction("index"); 
     } 

    public ActionResult MethodTwo() 
     { 
      ... 
      return RedirectToAction("index"); 
     } 
} 

和視圖:

//This one works fine!! 
@using (Html.BeginForm("MethodOne", "My", FormMethod.Post)) 
{ 
    <input id="Some-cool-id" type="submit" value="Add!" /> 
} 

//This one doesn't work?! 
@using (Html.BeginForm("MethodTwo", "My", FormMethod.Post)) 
{ 
    <input id="some-cool-id2" type="submit" value="Delete"!" /> 
} 

錯誤的告知方法2是不是在需要的路徑。

Resource not found. 

Description: HTTP 404. Searched resource (or ...) ... 

Required path URL: /My/MethodTwo 

我在搜尋什麼是壞的,但最後我需要幫助,謝謝。

+0

我試圖刪除緩存和重新啓動Visual Studio。 – Ademar

+0

如果它可以做的問題,在第二種形式我提交按鈕之前創建webgrid。但是隻顯示他(不要使用數據) – Ademar

+0

呃...''刪除'!「' - 裏面有一個額外的'''? (除非這是一個複製粘貼錯誤) –

回答

0

試試這個,

@using (Html.BeginForm("MethodTwo", "Test", FormMethod.Post)) 
    { 
     <input type="submit" value="asd" /> 
    } 


    @using (Html.BeginForm("MethodOne", "Test", FormMethod.Post)) 
    { 
     <input type="submit" value="poll" /> 
    } 

控制器

public class TestController : Controller 
    { 

public ActionResult MethodOne() 
     { 

     return RedirectToAction("CustomerInfo"); 
    } 

    public ActionResult MethodTwo() 
    { 

     return RedirectToAction("CustomerInfo"); 
    } 

[HttpGet] 
     public ActionResult CustomerInfo() 
     { 

     ViewBag.CustomerNameID = new SelectList(List, "CustomerId", "customerName"); 
     ViewBag.RegisterItems = GetAllRegisterData(); 
     ViewData["SampleList"] = GetAllRegisterData(); 
     return View(); 
    } 
} 
+0

問題不存在仍然在下降 – Ademar

+0

什麼因爲它在我的項目中是完美的工作 – Jaimin

+0

@Ademar這兩個表單是否在同一頁? – Jaimin

1

在方法之前添加屬性[HttpPost]

+0

不幸的是,沒有幫助。 :( – Ademar

+0

什麼是路由規則? – zsong

相關問題