[.Net Core学习三]基于Razor Page的增删改查

这篇博客介绍了如何在.NET Core中利用Razor Pages进行数据库操作,特别是针对MongoDB的增删改查。文章涵盖了Model、Service的创建,以及依赖注入的使用。页面代码示例包括无分页的列表展示、新增、修改和删除功能。在添加和编辑操作中,详细说明了如何处理前端和后端的数据交互,特别强调了[BindProperty]特性和SupportsGet属性的用法。
摘要由CSDN通过智能技术生成

数据库使用MongoDB 验证使用非侵入式脚本 

Model

  public class Book
    {
        [BsonId]
        [BsonRepresentation(BsonType.ObjectId)]
        public string Id { get; set; }

        [BsonElement("Name")]
        [Display(Name ="名称")]
        [Required(ErrorMessage ="{0}不能为空")]
        public string BookName { get; set; }
        [Display(Name = "价格")]
        [Required(ErrorMessage = "{0}不能为空")]
        public decimal Price { get; set; }
        [Display(Name = "分类")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string Category { get; set; }
        [Display(Name = "作者")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string Author { get; set; }
    }

Service

 public class BookService
    {
        public readonly IMongoCollection<Book> _books;
        public BookService(IBookstoreDatabaseSettings settings)
        {
            var client = new MongoClient(settings.ConnectionString);
            var database = client.GetDatabase(settings.DatabaseName);

            _books = database.GetCollection<Book>(settings.BooksCollectionName);
        }
        public List<Book> Get() =>
           _books.Find(book => true).ToList();

        public Book Get(string id) =>
            _books.Find<Book>(book => book.Id == id).FirstOrDefault();

        public Book Create(Book book)
        {
            _books.InsertOne(book);
            return book;
        }

        public void Update(string id, Book bookIn) =>
            _books.ReplaceOne(book => book.Id == id, bookIn);

        public void Remove(Book bookIn) =>
            _books.DeleteOne(book => book.Id == bookIn.Id);

        public void Remove(string id) =>
            _books.DeleteOne(book => book.Id == id);
    }

注入Service   services.AddSingleton<BookService>();

Page下新建文件夹Books Books下新建 Razor页面

列表页 无分页

页面代码

@page
@model RazorPagesMovie.Pages.Books.IndexModel

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <link hre
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值