输入类型="提交"不会在MVC中触发HttpPost?

时间:2015-10-10 23:13:19

标签: asp.net-mvc post submit

我开始感到困惑。我刚开始建立一个网站,偶然发现我的控制器出了问题。它根本没有发布,有或没有参数。我想补充一点,我刚刚从另一个控制器和View中移动了ActionResult方法。这可能是显而易见的事情,但感到疲惫和想象我要求澄清!

Viewpath / name:Views / Table / Registrations

@foreach (var registration in ViewBag.AllRegistrations)
    {
      using (Html.BeginForm("Registrations", "Table", new { regid = registration.RegistrationId }))
      {
         <tr class="odd gradeX">
          <td>
            <input type="submit" name="command" value="Edit" class="btn btn-default btn-xs" />&nbsp;
            <input type="submit" name="command" value="Delete" class="btn btn-default btn-xs" />
          </td>
         </tr>

      }
    }

Controllername:TableController

public ActionResult Registrations()
{
    ViewBag.AllRegistrations = registration.SelectAll();
    return View();
}

[HttpPost]
public ActionResult Registrations(int regid, string command)
{
    //doesn't post
    return View();
}

Routeconfig:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Table", action = "Registrations", id = UrlParameter.Optional }
    );
}

谢谢:)

1 个答案:

答案 0 :(得分:0)

[HttpPost] public ActionResult Edit(int regid,string命令) {

//Insert some logic

}

您可以将操作/方法名称设置为与按钮“值”相同,而不是设置默认路由

这可能会使您的代码更具可读性,因为您可以使用名为create,edit,delete的操作/方法。我希望有帮助

你的帖子逻辑/代码在哪里?目前您的帖子操作只是返回一个视图。你想用那种方法做什么?