控制器:
public ActionResult Insert()
{
return View();
}
public ActionResult Insert(Employee emp)
{
Employee emp1 = new Employee();
emp1.insert(emp);
return View();
}
CSHTML
@using (Html.BeginForm("Employee", "Insert", FormMethod.Post))
{
@Html.TextBoxFor(model => model.name)
@Html.TextBoxFor(model => model.Email)
@Html.TextBoxFor(model => model.mob)
<input type="button" value="Register me" />
}
我必须在点击按钮时保存我的模型值(&#39;注册我&#39;)。提前致谢。
答案 0 :(得分:7)
尝试在控制器中设置属性:
[HttpGet] // here ([HttpGet] is default so here you can delete this attribute)
public ActionResult Insert()
{
return View();
}
[HttpPost] // here
public ActionResult Insert(Employee emp)
{
Employee emp1 = new Employee();
emp1.insert(emp);
return View();
}
要调用某些操作,您需要提交表单。将您的button
更改为submit
类型:
<input type="submit" value="Register me" /> // type="button" -> type="submit"
此外,在BeginForm
中,您应首先指定操作名称,然后指定控制器名称:
@using (Html.BeginForm("Insert", "Employee", FormMethod.Post))
答案 1 :(得分:3)
因为您尚未在HTTP POST
INSERT action
[HttpPost]
public ActionResult Insert(Employee emp)
{
Employee emp1 = new Employee();
emp1.insert(emp);
return View();
}
当您使用Beginform
并且FormMethod
为Post
时,相关的操作需要具有相同类型的HTTP,顺便说一下,如果您拥有{并不重要{第一个[HttpGet]
{1}}因为在MVC中,任何未声明任何类型的HTTP请求/响应的ActionResult都称为ActionResult
同样在您的BeginForm()中:
[HttpGet]