我是ASP.NET的新手,今天刚开始在asp.net上学习MVC教程。我到了这里,http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-methods-and-edit-view
到目前为止一切顺利,问题是:
在我的视图中,我有以下代码(使用@model MyFirstMVC4.Models.Movie将模型设置为视图)
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Movie</legend>
@Html.HiddenFor(model => model.ID)
//... bla bla html input
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
我的MovieController
// Shows the view
public ActionResult Edit(int id = 0)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
}
//
// POST: /Movie/Edit/5
[HttpPost] // Handles the view above
public ActionResult Edit(Movie movie)
{
if (ModelState.IsValid)
{
db.Entry(movie).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
这就是问题--它到底是怎么把Movie对象传递给上面的POST方法的呢?!当我观察客户端时,有
<form action = "/Movie/Edit/1" ... />
这里我不明白为什么同一个视图页面的action = url?!1在服务器端也只有Html.BeginForm() :(它如何实现发布什么操作方法和传递什么路由参数?它起作用了,我只是不知道为什么
https://stackoverflow.com/questions/16744191
复制相似问题