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

 

ExpandedBlockStart.gif 代码
<%  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

 

 

转载于:https://www.cnblogs.com/bboy/archive/2010/01/27/1657858.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值