2013-08-30 53 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

相关问题