CSHTML页面的控制器的MVC调用方法

时间:2019-08-23 07:42:38

标签: c# asp.net-mvc razor

我在C#中有一个简单的Web应用程序。

在Index.cshtml文件中,我想插入一个按钮,然后单击它,然后调用控制器的方法。

所以我写了这段代码:

<div class="row" style="float:left;width:100%;height:100%;">
        <div class="col-md-12" style="width:100%;height:100%;">
            @using (Html.BeginForm("action", "IndexController"))
            {

                <input type="submit" value="Create" />

            }
        </div>
    </div>

在我的控制器中,我正在构建以下代码:

[HttpPost]
public ActionResult MyAction(string button)
{
  return View("TestView");
}

但是,如果我尝试单击按钮,则应用程序不会调用方法MyAction。

1 个答案:

答案 0 :(得分:0)

ASP.NET MVC约定要求使用操作名称,并且控制器名称减去“ Controller”,因此,由于您的操作方法名称是“ MyAction”,而控制器名称是“ IndexController”,因此请像这样更新调用:

@using (Html.BeginForm("MyAction", "Index"))

根据评论进行更新:

要将文本发送到您的操作方法以满足string button参数,您可以在表单中包括一个输入字段,如下所示:

@using (Html.BeginForm("MyAction", "Index"))
{
    <input type="text" name="button"/>
    <input type="submit" value="Create" />
}

请注意,文本字段的name属性是“按钮”,以匹配 string button参数名称。

  • 我建议不要使用按钮以外的其他名称,但是无论您的参数名称是什么,具有匹配的name属性的输入字段都将为该参数提供值。