欢迎来到天天文库
浏览记录
ID:52776360
大小:1.24 MB
页数:27页
时间:2020-03-30
《AspNet MVC4入门指南(6)验证编辑方法和编辑视图.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Asp.NetMVC4入门指南(6):验证编辑方法和编辑视图在本节中,您将开始修改为电影控制器所新加的操作方法和视图。然后,您将添加一个自定义的搜索页。在浏览器地址栏里追加/Movies,浏览到Movies页面。并进入编辑(Edit)页面。Edit(编辑)链接是由ViewsMoviesIndex.cshtml视图中的Html.ActionLink方法所生成的:@Html.ActionLink("Edit","Edit",new{id=item.ID})Html对象是一个Helper,以属性的形式,在Sy
2、stem.Web.Mvc.WebViewPage基类上公开。ActionLink是一个帮助方法,便于动态生成指向Controller中操作方法的HTML超链接链接。ActionLink方法的第一个参数是想要呈现的链接文本(例如,EditMe)。第二个参数是要调用的操作方法的名称。最后一个参数是一个匿名对象,用来生成路由数据(在本例中,ID为4的)。在上图中所生成的链接是http://localhost:xxxxx/Movies/Edit/4默认的路由(在App_StartRouteConfi
3、g.cs中设定)使用的URL匹配模式为:{controller}/{action}/{id}。因此,ASP.NET将http://localhost:xxxxx/Movies/Edit/4转化到Movies控制器中Edit操作方法,参数ID等于4的请求。查看App_StartRouteConfig.cs文件中的以下代码。publicstaticvoidRegisterRoutes(RouteCollectionroutes){routes.IgnoreRoute("{resource}.axd/{*pat
4、hInfo}");routes.MapRoute(name:"Default",url:"{controller}/{action}/{id}",defaults:new{controller="Home",action="Index",id=UrlParameter.Optional});}您还可以使用QueryString来传递操作方法的参数。例如,URL:http://localhost:xxxxx/Movies/Edit?ID=4还会将参数ID为4的请求传递给Movies控制器的Edit操作方法。打
5、开Movies控制器。如下所示的两个Edit操作方法。////GET:/Movies/Edit/5publicActionResultEdit(intid=0){Moviemovie=db.Movies.Find(id);if(movie==null){returnHttpNotFound();}returnView(movie);}////POST:/Movies/Edit/5[HttpPost]publicActionResultEdit(Moviemovie){if(ModelState.IsVali
6、d){db.Entry(movie).State=EntityState.Modified;db.SaveChanges();returnRedirectToAction("Index");}returnView(movie);}注意,第二个Edit操作方法的上面有HttpPost属性。此属性指定了Edit方法的重载,此方法仅被POST请求所调用。您可以将HttpGet属性应用于第一个编辑方法,但这是不必要的,因为它是默认的属性。(操作方法会被隐式的指定为HttpGet属性,从而作为HttpGet方法。)H
7、ttpGetEdit方法会获取电影ID参数、查找影片使用EntityFramework的Find方法,并返回到选定影片的编辑视图。如果不带参数调用Edit方法,ID参数被指定为默认值零。如果找不到一部电影,则返回HttpNotFound。当VS自动创建编辑视图时,它会查看Movie类并为类的每个属性创建用于Render的和的元素。下面的示例为自动创建的编辑视图:@modelMvcMovie.Models.Movie@{ViewBag.Title="Edit";}Edit<
8、/h2>@using(Html.BeginForm()){@Html.ValidationSummary(true)
此文档下载收益归作者所有