我在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。
答案 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
属性的输入字段都将为该参数提供值。