在 ASP.NET Core 中向 Razor Pages 应用显示模型

以下是实现也一个asp.net core Razor Pages的基本步骤

1、定义模型元素

复制代码
using System;
using System.ComponentModel.DataAnnotations;

namespace RazorPagesMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }

        [DataType(DataType.Date)]
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
}
复制代码

2、创建数据库上下文

复制代码
using Microsoft.EntityFrameworkCore;

namespace RazorPagesMovie.Models
{
    public class RazorPagesMovieContext : DbContext
    {
        public RazorPagesMovieContext (DbContextOptions options)
            : base(options)
        {
        }

        public DbSet Movie { get; set; }
    }
}
复制代码

3、将数据库上下文添加到服务中

复制代码
public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();

    services.AddDbContext(options =>
      options.UseSqlServer(Configuration.GetConnectionString("RazorPagesMovieContext")));
}
复制代码

4、Razor Pages页面代码管理

复制代码
// Unused usings removed.
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using RazorPagesMovie.Models;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace RazorPagesMovie.Pages.Movies
{
    public class IndexModel : PageModel
    {
        private readonly RazorPagesMovie.Data.RazorPagesMovieContext _context;

        public IndexModel(RazorPagesMovie.Data.RazorPagesMovieContext context)
        {
            _context = context;
        }

        public IList Movie { get;set; }

        public async Task OnGetAsync()
        {
            Movie = await _context.Movie.ToListAsync();
        }
    }
}
复制代码

5、模型和页面关联

复制代码
@page
@model RazorPagesMovie.Pages.Movies.IndexModel

@{
    ViewData["Title"] = "Index";
}

Index

Create New

@foreach (var item in Model.Movie) { }
@Html.DisplayNameFor(model => model.Movie[0].Title) @Html.DisplayNameFor(model => model.Movie[0].ReleaseDate) @Html.DisplayNameFor(model => model.Movie[0].Genre) @Html.DisplayNameFor(model => model.Movie[0].Price)
@Html.DisplayFor(modelItem => item.Title) @Html.DisplayFor(modelItem => item.ReleaseDate) @Html.DisplayFor(modelItem => item.Genre) @Html.DisplayFor(modelItem => item.Price) Edit | Details | Delete
复制代码

 

你可能感兴趣的:(在 ASP.NET Core 中向 Razor Pages 应用显示模型)