当前位置: 首页 > news >正文

Asp.net Mvc在VSCore中如何将增删改查的增改添加数据传输到页面(需配合上一篇Mvc的增删改查一起)

Linq集成查询(关联Lambda)

  1. First FirstOrDefault 找到第一个符合条件的元素
  • First(x =>x.Id == id) 返回第一个Id等于id的元素,如果都没有符合的,报错
  • FirstOrDefault(x =>x.Id == id) 返回第一个Id等于id的元素,如果都没有符合的,返回Null
  1. Single SingleOrDefault
  • Single() 返回第一个Id等于id的元素,如果都没有符合的,报错
  • SingleOrDefault() 返回第一个Id等于id的元素,如果都没有符合的,返回Null
  1. Where
  • Where(x=>x.Score>=80 && x.Sex==1) 查找所有成绩大于等于80,并且性别为1的所有元素 4.Select
  • Select(x=>new{x.Id,x.Score}) 以新的{x.Id,x.Score}对象形式,返回新的集合

如何将增删改查的增改添加数据传输到页面

1. 在新增页面Increase.cshtml中修改为

@model Blog.Models.Blogs;
<h2>新增</h2>
<form asp-Controller="Blogs" asp-action="Increase" method="post"><label>标题:<input asp-for="Title"/></label> <br/><label>内容:<input asp-for="Content"/></label> <br/><label>作者:<input asp-for="Author"/></label> <br/><button type="submit">保存</button>
</form>

2. 在BlogsController.cs中添加

    [HttpPost]public Blogs Increase(Blogs input){return input;}

-就可以添加新增到页面。但需要验证数据库是否成功,成功跳转到列表页吗,验证不通过,仍显示新增页面,并显示

  • 所以单单这样,验证是不通过的,并且显示
{"id": 0,"title": "你好","content": "星期三","author": "哈哈"
}

完整版 (需要配合上一篇,mvc的增删改查一起)

  • BlogsController.cs
using Microsoft.AspNetCore.Mvc;
using Blog.Models;
namespace Blog.Controllers;public class BlogsController : Controller
{public IActionResult Index(){return View(Db.Blogs);}/// <summary>/// 创建-展示新增页面/// </summary>/// <returns></returns> public IActionResult Increase(){return View();}/// <summary>/// 创建-保存表单结果的Action/// </summary>/// <param name="input"></param>/// <returns></returns>[HttpPost]public IActionResult Increase(Blogs input){// return input;// 1.验证表单数据是否可以传入// 2.拿到传入的数据后,一般做验证,数据验证,如必填,手机号,长度,名称是否唯一// 3.如果符合验证规则,则保存到数据库,否则提示验证不通过// 4.如果保存数据库成功,则跳转列表页,如果验证不成功,那就仍然显示新增页面//  var maxId=Db.Blogs.First();//  var maxId=Db.Blogs.FirstOrDefault();//  var maxId=Db.Blogs.Single(x=>x.Id>0);//  var maxId=Db.Blogs.SingleOrDefault(x=>x.Id>0);//  double.Blogs.Add(inout)// 先通过select 拿到集合中的所有id,放在一个新的集合中返回,然后对这个返回的新的集合应用Max方法,找到其中最大值 // var blogs = Db.Blogs.Where(x => x.Title.Equals(input.Title));// if (blogs.Count() > 0)// {//     return View("create");// }var maxId=Db.Blogs.Select(x =>x.Id).Max();input.Id=maxId +1;Db.Blogs.Add(input);return RedirectToAction("Index");}// 新// 获得Idpublic IActionResult Redact(int id){// 根据id找到对应的blogs,有可能为空var blog = Db.Blogs.FirstOrDefault(x =>x.Id == id);return View(blog);}// 新[HttpPost]public IActionResult Redact(Blogs input){// 根据id找到对应的blogs,有可能为空var blog = Db.Blogs.FirstOrDefault(x => x.Id == input.Id);if (blog != null){blog.Title = input.Title;blog.Content = input.Content;blog.Author = input.Author;}return RedirectToAction("Index");}public IActionResult Delete(){return View();}
}
  • Index.cshtml页面
<link rel="stylesheet" href="~/css/base.css">
@model List<Blog.Models.Blogs><a asp-action="Increase">增加</a>
<table><tr><th>Id</th><th>标题</th><th>内容</th><th>作者</th><th>操作</th></tr>@foreach(var item in @Model){<tr><td>@item.Id</td><td>@item.Title</td><td>@item.Content</td><td>@item.Author</td><td><a asp-action="Redact" asp-route-id="@item.Id">编辑</a><a asp-action="Delete" asp-rout-id="@item.Id">删除</a></td></tr>}
</table>
  • Increase.cshtml页面
@model Blog.Models.Blogs;
<h2>新增</h2>
<form asp-Controller="Blogs" asp-action="Increase" method="post"><label>标题:<input asp-for="Title"/></label> <br/><label>内容:<input asp-for="Content"/></label> <br/><label>作者:<input asp-for="Author"/></label> <br/><button type="submit">保存</button>
</form>@*注释部分 
<table><form action=""><tr><td>标题</td><td>:</td><td><input type="text"></td></tr><tr><td> 内容</td><td>:</td><td><input type="text"></td></tr><tr><td>作者</td><td>:</td><td><input type="text"></td></tr><tr><td><input type="button" value="保存"></td><td></td><td></td></tr></form>
</table> *@
  • Redact.cshtml页面
@model Blog.Models.Blogs;
<h2>修改</h2>
<form asp-Controller="Blogs" asp-action="Redact" method="post"><label>Id:<input asp-for="Id"/></label> <br/><label>标题:<input asp-for="Title"/></label> <br/><label>内容:<input asp-for="Content"/></label> <br/><label>作者:<input asp-for="Author"/></label> <br/><button type="submit">保存</button>
</form>
@* <table><form action=""><tr><td>标题</td><td>:</td><td><input type="text" placeholder="永远是朋友"></td></tr><tr><td> 内容</td><td>:</td><td><input type="text" placeholder="真心换一切"></td></tr><tr><td>作者</td><td>:</td><td><input type="text" placeholder="哈哈"></td></tr><tr><td><input type="button" value="保存"></td><td></td><td></td></tr></form>
</table> *@
http://www.lryc.cn/news/497334.html

相关文章:

  • Android显示系统(04)- OpenGL ES - Shader绘制三角形
  • 微信 创建小程序码-有数量限制
  • 重生之我在异世界学编程之C语言:操作符篇
  • 365天深度学习训练营-第P7周:马铃薯病害识别(VGG-16复现)
  • 解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾
  • Kubernetes 告警标签规范与最佳实践
  • 前端开发 之 15个页面加载特效中【附完整源码】
  • rsync+nfs+lrsync服务部署流程
  • 基于SpringBoot+Vue的宠物咖啡馆系统-无偿分享 (附源码+LW+调试)
  • SQLServer 服务器只接受 TLS1.0,但是客户端给的是 TLS1.2
  • Golang内存模型总结1(mspan、mcache、mcentral、mheap)
  • lobeChat安装
  • Android学习8 -- NDK2--练习2(Opencv)
  • nodejs循环导出多个word表格文档
  • elasticsearch-如何给文档新增/更新的字段
  • https/http访问接口工具类,附带ssl忽略证书验证,以及head头部的添加-java版
  • node.js基础学习-express框架-静态资源中间件express.static(十一)
  • Python语法基础---正则表达式
  • Uniapp 微信小程序分享 - 自定义绘制分享图片
  • 鸿蒙技术分享:Navigation页面容器封装-鸿蒙@fw/router框架源码解析(三)
  • 三步入门Log4J 的使用
  • VBA中类的解读及应用第十八讲:利用类方法,判断任意单元格类型
  • 查询品牌涉及两张表(brand、brand_admin_mapping)
  • Eureka和Zookeeper、Nacos的区别
  • 微信小程序怎么实现非tabbar页面显示tabbar,自定义组件实现
  • SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)
  • 多种平台上安装部署调试Open5GS(四)
  • 单片机的基本构成与工作原理
  • opencv常用图像处理操作
  • Svn如何切换删除账号