我有一个新的asp.net mvc 3项目,其结构如下:
查看: /Home/Index.cshtml
@{
Html.BeginForm("Index", "Home", "POST");
}
<input id="name" type="text" />
<input id="submit_1" type="submit" value="submit" />
@{
Html.EndForm();
}
@{
Html.BeginForm("FindTeacher", "Home", "POST");
}
<input id="name" type="text" />
<input id="submit_2" type="submit" value="submit" />
@{
Html.EndForm();
}
控制器: /Controllers/HomeController.cs
public class HomeController : Controller
{
[HttpPost]
public ActionResult Index(string name)
{
//call the model FindStudent() and set the ViewData
return View();
}
[HttpPost]
public ActionResult FindTeacher(string name)
{
//Call the FindTeacher () and set the ViewData
return View();
}
}
submit_1是有效的,因为它找到了Index的ActionResult,但是,当我点击submit_2时,它说找不到FindTeacher Controller。
那我该怎么办?
答案 0 :(得分:1)
"POST"
错了;它应该是FormMethods.Post
。
因此,您的表单实际上是在提交GET请求。
Index
有效,因为您有一个不同的操作可以响应对/Index
的GET请求。
FindTeacher
失败,因为该操作没有GET。
答案 1 :(得分:1)
试试这个
[HttpPost]
public ActionResult FindTeacher(string name)
{
// do updates
return RedirectToAction("Index"); or
return Index();
}