MVC [HttpGet]和[HttpPost]的使用
程序员文章站
2022-06-11 22:41:11
...
内容
[HttpGet]
需求:
用户想要通过点击修改按钮来达到修改这部分内容的效果。
分析:
点击修改按钮,获取这个请求,然后显示相应的修改内容。
Demo
View部分
@*跳转链接,a.UserID为请求条件*@
<a href="/Home/Modify/@a.UserID">修改</a>
Controller部分
在这里插入代码片[HttpGet]
public ActionResult Modify(string id)
{
//1.根据id查询数据集,返回的集合汇总,拿到第一个实体对象
T_User userd = (from a in db.T_User where a.UserID == id select a).FirstOrDefault();
//2.生成用户级别
IEnumerable<SelectListItem> listitem = (from c in db.T_User
where c.Computer == "ZLT"
select c).ToList()
.Select(c => new SelectListItem { Value = c.UserID.ToString(), Text = c.Level }).ToList();
//将生成的文章分类,下拉框选项集合,设置给viewbag
ViewBag.level = listitem;
//2.将userd传递给显示
//*“加载”视图使用view的构造函数,将数据传递给实体上的名为Model的属性
return View(userd);
} ```
[HttpPost]
需求:
用户想将上面修改的内容,进行提交,然后保存。
分析:
点击提交按钮,然后提交请求,完成提交。
Demo
View部分
@using (Html.BeginForm(“Modify”, “Home”, FormMethod.Post))
{
@@
@@
修改 | ||
标题: | @Html.TextBox(“txtName”,(object)Model.T_User) | @Html.TextBoxFor(a => a.UserID) |
级别: | @Html.DropDownListFor(a=>a.Level,ViewBag.level as IEnumerable) | |
内容 | @Html.TextBox(“txtName”,(object)Model.UserID) | @Html.TextAreaFor(a=>a.UserName,10,60,null) |
@Html.ActionLink(“返回”,“Index”,“Home”) |
}
Controller部分
[HttpPost]
public ActionResult Modify(T_User model)
{
try
{
//1.将实体对象加入EF对象容器中,并获取伪包装类
DbEntityEntry<T_User> entry = db.Entry<T_User>(model);
//2.将包装类对象的状态设置为unchanged
entry.State = System.Data.EntityState.Unchanged;
//3.设置被改变的属性
entry.Property(a => a.UserID).IsModified = true;
entry.Property(a => a.UserName).IsModified = true;
entry.Property(a => a.Level).IsModified = true;
//4.提交到数据库,完成修改
db.SaveChanges();
//5.更新成功,则命令浏览器重定向到/Home/List方法
return RedirectToAction(“Index”, “Home”);
}
catch (Exception ex)
{
return Content("更新失败!" + ex.Message);
}
}
注意:可以发现,当post和get方式不同的时候,在同一个控制器下面,可以有相同的action名。
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190507105412760.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1a2U2NjY2NjY=,size_16,color_FFFFFF,t_70)小结
Post方法提交的一定是整个表单,一个实体数据,得到提交的结果。Get方法,获取请求条件,然后得到要请求的部分。
推荐阅读
-
asp.net mvc4中bootstrap datetimepicker控件的使用
-
vue插槽slot的理解和使用方法
-
Java得到一个整数的绝对值,不使用任何判断和比较语句,包括API
-
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
-
Python的for和break循环结构中使用else语句的技巧
-
C#使用Socket实现发送和接收图片的方法
-
使用Python和Prometheus跟踪天气的使用方法
-
python中的hashlib和base64加密模块使用实例
-
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
-
车载蓝牙使用方法(附详细的步骤和方法)