ASP.NET MVC3 实例(六) 增加、修改和删除操作(二)

http://www.jquery001.com/asp.net-mvc3-instance-add-update-delete2.html

上篇我们在 ASP.NET MVC3 中实现了添加操作,由于时间关系没有完成修改、删除操作,我们新建了一个名为"Contact"的
Controller,并实现了添加方法,下边就让我们在此基础上来完成 ASP.NET MVC3 中的修改和删除操作。

首先,我们在 Contact 控制器类中添加一个名为 View()的方法,用来从 Contact 表中取出留言数据,并传递给列表页
"Index",方法如下:

//// GET: /Contact/publicActionResultIndex(){var contact =from c in android.Contactwhere c.IsValid==1orderby c.ID descendingselect c;returnView(contact.ToList());}

我们使用 Linq 从 Contact 表中取出了所有有效数据(IsValid==1),并按ID降序显示。接下来,添加名为"Index"的视图,最终
"Index" 全部代码如下:

@modelIList<Android.Models.Contact><p>@Html.ActionLink("Create New","Create")</p><table><tr><th>UserName</th><th>Content</th><th>Addtime</th></tr>@foreach(var item inModel){<tr><td>@item.UserName</td><td>@item.Content</td><td>@item.Addtime</td><td>@Html.ActionLink("编辑","Edit",new{ id=item.ID })|@Html.ActionLink("删除","Delete",new{ id = item.ID })</td></tr>}</table>

可以看到,显示用的代码是非常整洁的,我们没有做样式方面的美化,最终的列表页效果如下:

修改操作、删除操作传递的参数都是留言ID,首先,我们看看修改操作,分别给 "Contact" Controller 添加名为 Edit()
两个方法,1.用来根据根据ID得到留言实体,并返回给编辑页;2.完成修改操作。如下:

//// GET: /Contact/Edit/5publicActionResultEdit(int id){var message = android.Contact.Single(m => m.ID == id);returnView(message);}//// POST: /Contact/Edit/5[HttpPost]publicActionResultEdit(int id,FormCollection collection){try{var message = android.Contact.Single(m => m.ID == id);UpdateModel(message);
android.SaveChanges();returnRedirectToAction("Index");//返回到列表}catch{returnView();}}

为了简洁起见,修改时我们只修改留言是否有效,其他的和这个类似,"Edit"视图最终代码如下:

@modelAndroid.Models.Contact@using(Html.BeginForm()){<fieldset><legend>Contact</legend>@Html.HiddenFor(model => model.ID)<div class="editor-label">@Html.LabelFor(model=>model.Content,"留言内容")</div><div class="editor-field">@Model.Content</div><div class="editor-label">@Html.LabelFor(model => model.IsValid,"是否有效")</div><div class="editor-field">有效@Html.RadioButtonFor(model=>model.IsValid,1)无效@Html.RadioButtonFor(model=>model.IsValid,0)</div><p><input type="submit" value="Save"/></p></fieldset>}

页面的效果如下图所示:

其中RadioButtonFor同LabelFor使用方法类似,这样当我们点击列表页中的"编辑"时,先执行第一个"Edit"方法,根据ID将实体返回到我们的编辑页。当我们点击"Save"提交时,执行第二个"Edit"方法,并对数据库中的"Contact"表进行了修改操作,这样实现了在
ASP.NET MVC3 中的修改操作。

下边看看删除操作,"Contact" 控制器类中的删除方法只使用 Get 方式的就行,因为我们将根据传递过来的ID直接进行删除操作,如下:

//// GET: /Contact/Delete/5publicActionResultDelete(int id){try{var contact = android.Contact.Single(c => c.ID == id);
android.DeleteObject(contact);
android.SaveChanges();}catch{}returnRedirectToAction("../Contact");}

当然了此时的"Delete"
视图完全为空也是可以的。删除操作执行后返回到我们的留言列表中,到这里删除操作就完成了。这里使用真删除是为了说明DeleteObject()方法,一般这种情况我们只需将"IsValid"字段修改为0即可,并不做真删除。还有一点要注意的是,例子中使用try进行异常的处理,因为
Linq 查询时会在有问题时抛出相应的异常、SaveChanges()也会抛出异常。

从这两篇文章我们不难发现,在 ASP.NET
MVC3中我们不再需要手动写代码来接收参数了,你可以在添加、修改操作中看到我们并没有手动写代码来接收以"Post"方式提交过来的表单数据。如果你看的 MVC
3中的有些文章还在使用Request["parameter"]、Request.Form["parameter"]、Request.QueryString["parameter"]、collection["parameter"](collection
是 FormCollection 类对象)的方式接收参数,你就需要注意下了。当然,ASP.NET MVC3中还有非常多的特征,本系列还将会进行介绍。

好了,到这里就完全实现了在 ASP.NET MVC3中的增加、修改、删除操作,希望对很多新学 ASP.NET MVC3
的朋友能带来一些帮助。

ASP.NET MVC3 实例(六) 增加、修改和删除操作(二),布布扣,bubuko.com

时间: 2024-10-08 05:23:54

ASP.NET MVC3 实例(六) 增加、修改和删除操作(二)的相关文章

Android数据库高手秘籍(六)——LitePal的修改和删除操作

——LitePal的存储操作 . LitePal的项目地址是:https://github.com/LitePalFramework/LitePal 传统的修改和删除数据方式 上篇文章中我们已经得知,SQLiteDatabase类中提供了一个insert()方法用于插入数据,那么类似地,它还提供了update()和delete()这两个方法,分别用于修改和删除数据.先来看一下update()方法的方法定义: [java] view plaincopy public int update(Stri

MySQL数据库表的数据插入、修改、删除操作及实例应用

1.MySQL数据库表的数据插入.修改.删除操作SQL语法格式: 1 CREATE DATABASE db0504; 2 3 USE db0504; 4 5 CREATE TABLE student ( 6 sno VARCHAR (10) NOT NULL UNIQUE PRIMARY KEY, 7 sname VARCHAR (20) NOT NULL, 8 ssex enum ('男', '女') NOT NULL DEFAULT '男', 9 sbirth date, 10 sclass

跟我一起学extjs5(18--模块的新增、修改、删除操作)

跟我一起学extjs5(18--模块的新增.修改.删除操作) 上节在Grid展示时做了一个金额单位可以手工选择的功能,如果你要加入其他功能,也只要按照这个模式来操作就行了,比如说你想改变金额字段的颜色.小数位数.零值是否显示.货币符号.单位显示在标题栏或者跟在金额后面,凡是你能想到的需要手工设置的东西都可以加进来. 上面讲到的这些设置以后会加到程序里,在下载包里可以看到,就不做讲解了. 这一节来使模块可以具有新增.修改.删除的操作.由于还没有和后台服务相联,因此数据是保存在本地localStor

带有条件 修改和删除操作 如何解决

使用@Query 注解完成 , 搭配使用@Modifying 标记修改.删除操作将记录 1 的 最小长度改为 15注意:使用单体测试,测试 DAO ,要添加事务,设置事务不回滚 原文地址:https://blog.51cto.com/13587708/2420657

SpringData修改和删除操作

SpringData的查询我们已经学完了,我们现在就研究一下SpringData的修改和删除. @Modifying 注解和事务 @Query 与 @Modifying 这两个 annotation一起声明,可定义个性化更新操作,例如只涉及某些字段更新时最为常用,示例如下: //可以通过自定义的 JPQL 完成 UPDATE 和 DELETE 操作. 注意: JPQL 不支持使用 INSERT //在 @Query 注解中编写 JPQL 语句, 但必须使用 @Modifying 进行修饰. 以通

4. mongodb插入,修改,删除操作

mongodb插入操作 语法: db.collection.save(collections); OR  db.collection.insert(collections); 插入有上面两种方式. 1. 借用对象来插入 >item={id:1,name:"hello"} >db.lottu.insert(item) 2. 循环插入数据:一下子插入5条记录这种很不错吧 >for(i=1;i<=5;i++)db.lottu.insert({id:i,name:&qu

数据库————表之增加、查询、修改、删除操作

一. 运算符: 字符串是用单引号 数据库中出现比较用的是=,不是双等号 逻辑与 and 逻辑或 or 逻辑非 not 二.CRUD操作: 1.C——create   增加.创建,向数据库添加数据 格式:insert into 表名  values(列值1,列值2,...........列值n) insert into Fruit values('K009','苹果',3.0,'高青',90,'') insert into Fruit(Ids,Name,Price,Source,Numbers)

ASP.NET后台显示信息、修改密码等操作

protected void Page_Load(object sender, EventArgs e) { //显示姓名等信息 string sql = "select * from [stu] where id="+Convert.ToString(Request.QueryString["Id"]); DataTable dt = new SqlHelper().ExecuteQuery(sql, CommandType.Text); Label1.Text=

【Git】Git 本地的撤销修改和删除操作

一:撤销操作 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改: 第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉. 第二:我可以按以前的方法直接恢复到上一个版本.使用 git reset –hard HEAD^ 但是现在我不想使用上面的2种方法,我想直