自学内容网 自学内容网

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");
    }
    // 新
    // 获得Id
    public 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> *@

原文地址:https://blog.csdn.net/2301_81256766/article/details/144252411

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!