我有,我想通过调用来处理表单内按钮的基本形式ActionResult
在视图的关联方法Controller
类。 下面是形式的下HTML5代码:
<h2>Welcome</h2>
<div>
<h3>Login</h3>
<form method="post" action= <!-- what goes here --> >
Username: <input type="text" name="username" /> <br />
Password: <input type="text" name="password" /> <br />
<input type="submit" value="Login">
<input type="submit" value="Create Account"/>
</form>
</div>
<!-- more code ... -->
相应的Controller
代码如下:
[HttpPost]
public ActionResult MyAction(string input, FormCollection collection)
{
switch (input)
{
case "Login":
// do some stuff...
break;
case "Create Account"
// do some other stuff...
break;
}
return View();
}
你让使用HTML助手,并有
@using(Html.BeginForm())
{
Username: <input type="text" name="username" /> <br />
Password: <input type="text" name="password" /> <br />
<input type="submit" value="Login">
<input type="submit" value="Create Account"/>
}
或使用URL帮手
<form method="post" action="@Url.Action("MyAction", "MyController")" >
Html.BeginForm
有几个(13)覆盖在那里你可以指定更多的信息,例如,正常使用时,使用上传文件是:
@using(Html.BeginForm("myaction", "mycontroller", FormMethod.Post, new {enctype = "multipart/form-data"}))
{
< ... >
}
如果不指定任何参数, Html.BeginForm()
将创建一个POST
指向你的电流控制器和电流动作形式。 举个例子,假设你有一个控制器叫做Posts
,并呼吁行动Delete
public ActionResult Delete(int id)
{
var model = db.GetPostById(id);
return View(model);
}
[HttpPost]
public ActionResult Delete(int id)
{
var model = db.GetPostById(id);
if(model != null)
db.DeletePost(id);
return RedirectToView("Index");
}
和你的HTML页面会是这样的:
<h2>Are you sure you want to delete?</h2>
<p>The Post named <strong>@Model.Title</strong> will be deleted.</p>
@using(Html.BeginForm())
{
<input type="submit" class="btn btn-danger" value="Delete Post"/>
<text>or</text>
@Url.ActionLink("go to list", "Index")
}
在这里我基本上包裹在一个链接按钮。 其优点是,你可以张贴在相同的形式不同的操作方法。
<a href="Controller/ActionMethod">
<input type="button" value="Click Me" />
</a>
添加参数:
<a href="Controller/ActionMethod?userName=ted">
<input type="button" value="Click Me" />
</a>
从非枚举型添加参数:
<a href="Controller/ActionMethod?userName=@Model.UserName">
<input type="button" value="Click Me" />
</a>
您可以为枚举型做同样也是。 你只需要首先引用一个单一的实体。 编码快乐!
文章来源: How to link HTML5 form action to Controller ActionResult method in ASP.NET MVC 4