我有一个基本表单,我希望通过调用视图关联的控制器类中的ActionResult方法来处理表单中的按钮。以下是表单的HTML5代码:
<;h2>;欢迎</h2>;
<;部门>;
<;h3>;登录</h3>;
<;form method=“post”操作=<;!--这里是什么-->&燃气轮机;
用户名:<;输入type=“text”name=“username”/>&书信电报;br/>;
密码:<;输入type=“text”name=“password”/>&书信电报;br/>;
<;输入type=“submit”value=“Login”>;
<;输入type=“submit”value=“创建帐户”/>;
</表格>;
</部门>;
<;!--更多代码--&燃气轮机;
相应的控制器代码如下:
[HttpPost]
公共操作结果MyAction(字符串输入,FormCollection集合)
{
开关(输入)
{
案例“登录”:
//做些事情。。。
打破
案例“创建帐户”
//做一些其他的事情。。。
打破
}
返回视图();
}
您可以使用HTML帮助器并
@使用(Html.BeginForm())
{
用户名:<;输入类型=“text”name=“用户名”/>;<;br/>;
密码:<;input type=“text”name=“Password”/>;<;br/>;
<;输入type=“提交”value=“登录”>;
<;输入type=“submit”value=“创建帐户”/>;
}
或者使用Url帮助器
<;form method=“post”action=“@Url.action(“MyAction”、“MyController”)”>;
Html.BeginForm有几个(13)覆盖,您可以在其中指定更多信息,例如,上载文件时的正常使用是使用:
@使用(Html.BeginForm(“myaction”、“mycontroller”、FormMethod.Post、new{enctype=“multipart/formdata”}))
{
<;…>;
}
如果未指定任何参数,则Html.BeginForm()将创建一个POST表单,该表单将指向当前控制器和当前操作。例如,假设您有一个名为Posts的控制器和一个名为Delete
公共操作结果删除(int id)
{
var model=db.GetPostById(id);
返回视图(模型);
}
[HttpPost]
公共操作结果删除(int id)
{
var model=db.GetPostById(id);
如果(型号!=null)
db.DeletePost(id);
返回重定向到视图(“索引”);
}
您的html页面将类似于:
<;h2>;是否确实要删除?</h2>;
<;p>;该职位名为<;strong&[email protected]模型名称</strong>;将被删除。</p>;
@使用(Html.BeginForm())
{
<;输入type=“submit”class=“btn btn danger”value=“Delete Post”/gt;
<;text>;或<;/text>;
@ActionLink(“转到列表”、“索引”)
}