У меня есть базовая форма, для которой я хочу обрабатывать кнопки внутри формы, вызывая метод ActionResult
в связанном с View объекте Controller
. Вот следующий HTML5 код формы:Как связать действие формы HTML5 с методом Controller ActionResult в ASP.NET MVC 4
<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();
}
Я попытался использовать метод 2 с помощью URL-адреса, но я думаю, что синтаксис, который я нашел, был специфичным для MVC3, и он не работал. Это прекрасно соответствовало моим потребностям. Спасибо! – dtg
@Dylan: Потому что отсутствует) кронштейн в Html.BeginForm линии. – Muflix
Как у вас есть «public ActionResult Delete (int id)» и «[HttpPost] public ActionResult Delete (int id)»? Разве нет конфликта имен между ними? – Alexander