Asp.net MVC2学习笔记6-简单实例(Movie)(下)

今天我们继续完成 这个 MVC2 简单实例的剩余功能:显示明细、添加、编辑等。。。。。

 

一、显示明细

  在 MoviewsController中的 Details方法里 右键--Add view,创建一个强类型的视图

 

  

  

 

确定后,这个明细的视图文件就已经生成。。。

此时,我们需要修改 Detials 方法,根据 传递过来的 id参数,去数据库查询我们的数据

 

//
        
// GET: /Movies/Details/5

        
public ActionResult Details( int id)
         {
             ViewData.Model
= _dbEntities.MovieSet.First(m => m.ID == id);
            
return View();
         }

 

 

二、添加记录

  我们看到有2个Create,第一个是返回视图页面,第二个是处理添加的逻辑。。

  添加视图就比较简单了,直接在 Create方法上右键--add view,添加一个强类型的视图,内容选择Create,就完事啦,

F5 试试,添加页面是不是就出来了?

 

此时 我们需要修改一下页面,因为我们 ID 是自动生成的,所以这边ID应该不可以输入;

 

下面我们看下后台处理添加的逻辑,默认生成的 Create方法带的参数是 FormCollection,包括整个form里面的参数的集合,

这里我们修改一下参数改成我们的model:Movie,因为我们创建的是强类型,所以这里可以直接使用这个model,

这里 逻辑部分,我没有做其他判断(如:判断输入合法性),直接调用 实体数据模型,添加进数据库。。。

//
        
// POST: /Movies/Create

         [HttpPost]
        
public ActionResult Create(Models.Movie model)
         {
            
try
             {
                
// TODO: Add insert logic here
                 _dbEntities.AddToMovieSet(model);
                 _dbEntities.SaveChanges();
                
return RedirectToAction( " Index " );
             }
            
catch
             {
                
return View();
             }
         }

 

这里的 [HttpPost] 属性指定是 处理 post过来的数据。。 ok,写到这里 F5起来测试一下吧

 

三、修改记录

  与添加一样,修改也有2个edit。。创建一个强类型视图,类型edit..

  代码修改1:根据 id 查询出需要修改的记录:方法同 一

 

//
        
// GET: /Movies/Edit/5

        
public ActionResult Edit( int id)
         {
             ViewData.Model
= _dbEntities.MovieSet.First(m => m.ID == id);
            
return View();
         }

 

 

  代码修改2:添加edit逻辑,先根据 id找到movie,再赋新值,最后提交给数据库。。

  这里只是举例,并没有包含其他验证部分。。

  

//
        
// POST: /Movies/Edit/5

         [HttpPost]
        
public ActionResult Edit( int id, Models.Movie model)
         {
            
try
             {
                
// TODO: Add update logic here
                 Models.Movie movie = _dbEntities.MovieSet.First(m => m.ID == id);
                 movie.Movie_Name
= model.Movie_Name;
                 movie.Release_Date
= model.Release_Date;
                 _dbEntities.SaveChanges();

                
return RedirectToAction( " Index " );
             }
            
catch
             {
                
return View();
             }
         }

 

 

此时,我们添加、编辑功能都做好了,是不是觉得少了一个 删除?呵呵,根据上面的学习,我们就可以自己写一个啦。。。。

首先,我们在 Index.asp页面中 添加 删除的 Link

 

代码
<% foreach (var item in Model) { %>
    
        
< tr >
            
< td >
                
<% = Html.ActionLink( " Edit " , " Edit " , new { id = item.ID }) %> |
                
<% = Html.ActionLink( " Details " , " Details " , new { id = item.ID }) %>
                
<% = Html.ActionLink( " Delete " , " Delete " , new { id = item.ID }) %><!--添加删除Link-->
            
</ td >
            
< td >
                
<% = Html.Encode(item.ID) %>
            
</ td >
            
< td >
                
<% = Html.Encode(item.Movie_Name) %>
            
</ td >
            
< td >
                
<% = Html.Encode( String .Format( " {0:g} " , item.Release_Date)) %>
            
</ td >
        
</ tr >
    
    
<% } %>

 

 

然后处理后台:添加一个 Delete的Action,参数就是 id

public ActionResult Delete( int id)
         {
            
try
             {
                 Models.Movie movie
= _dbEntities.MovieSet.First(m => m.ID == id);
                 _dbEntities.DeleteObject(movie);
                 _dbEntities.SaveChanges();
                
return RedirectToAction( " Index " );
             }
            
catch
             {
                
return View( " Index " );
             }
         }

 

ok,F5吧,试试 Delete有没有效果?呵呵

大家有没有觉得MVC很简单啊?尤其是配合 ADO.NET Entity Framework,效果更佳! 呵呵

实例代码:/Files/bboy/Movie.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值