简体   繁体   English

在 Visual Studio Code 中的 asp.net 核心 mvc 中实现 jquery 插件数据表

[英]Implementing jquery plugin datatable in asp.net core mvc in Visual Studio Code

I have entries in MySQL Database but i am not able to implement jquery datatable plugin on database for showing that table in browser as jquery plugin datatable (server side processing).我在 MySQL 数据库中有条目,但我无法在数据库上实现 jquery 数据表插件,以便在浏览器中将该表显示为 jquery 插件数据表(服务器端处理)。 How can i implement it?我该如何实施?

Here are files and folders.这里是文件和文件夹。

Models楷模

  1. Course.cs课程.cs
using System.ComponentModel.DataAnnotations.Schema;
namespace ContosoUniversity.Models
{
   public class Course
   {
       [DatabaseGenerated(DatabaseGeneratedOption.None)]
       public int CourseID {get;set;}
       public string Title {get;set;}
       public int Credits {get;set;}

       public ICollection<Enrollment> Enrollments {get;set;}
   } 
}
  1. Enrollment.cs注册.cs
{
    public enum Grade
    {
        A, B, C, D, F
    }
    public class Enrollment
    {
        public int EnrollmentID {get;set;}
        public int CourseID {get;set;}
        public int StudentID{get;set;}
        public Grade? Grade {get;set;}

        public Course Course {get;set;}
        public Student Student {get;set;}
    }
}

3)Student.cs 3)学生.cs

using System.Collections.Generic;
namespace ContosoUniversity.Models
{
    public class Student
    {
        public int ID {get;set;}
        public String LastName {get;set;}
        public String FirstName {get;set;}
        public DateTime EnrollmentDate {get;set;}
        public ICollection<Enrollment> Enrollments { get; set; }
    }
}

Views In Pages/Shared/Layout.cshtml Pages/Shared/Layout.cshtml 中的视图

<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>@ViewData["Title"] - Contoso University</title>
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="~/css/site.css" />
</head>
<body>
    <header>
        <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
            <div class="container">
                <a class="navbar-brand" asp-area="" asp-page="/Index">ContosoUniversity</a>
                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                        aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>
                <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
                    <ul class="navbar-nav flex-grow-1">
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/About">About</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/Students/Index">Students</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/Courses/Index">Courses</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/Teachers/Index">Teachers</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/Departments/Index">Departments</a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>
    </header>
    <div class="container">
        <main role="main" class="pb-3">
            @RenderBody()
        </main>
    </div>

    <footer class="border-top footer text-muted">
        <div class="container">
            &copy; 2021 - Contoso University - <a asp-area="" asp-page="/Privacy">Privacy</a>
        </div>
    </footer>

    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>

    @await RenderSectionAsync("Scripts", required: false)
</body>
</html>

ContosoUniversity.csproj file ContosoUniversity.csproj 文件


  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.0-*" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.0-*">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SQLite" Version="5.0.0-*" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-*" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-*">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.0-*" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.Composition" Version="1.0.30" ExcludeAssets="All" />
    <PackageReference Include="System.Composition" Version="1.0.31" />
    
  </ItemGroup>

</Project>

In.vscode/launch.json file在.vscode/launch.json文件中

    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/bin/Debug/<net5.0>/<ContosoUniversity.dll>",
            "args": [],
            "cwd": "${workspaceFolder}",
            "externalConsole": true,
            "stopAtEntry": false,
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/bin/Debug/net5.0/ContosoUniversity.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false,
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

Startup.cs file Startup.cs文件

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace ContosoUniversity
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
            });
        }
    }
}

index.cshtml file index.cshtml 文件

@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="row mb-auto">
    <div class="col-md-4">
        <div class="row no-gutters border mb-4">
            <div class="col p-4 mb-4">
                <p class="card-text">
                    Contoso University is a simple application that demonstrates how to use Entity FRamework Core in an ASP.NET CORE RAZOR PAGES web app.
                </p>
            </div>
        </div>
    </div>
    <div class="col-md-4">
        <div class="row no-gutters border mb-4">
            <div class="col p-4 d-flex flex-column position-static">
                <p class="card-text mb-auto">
                    You can build the app by following the steps in series of tutorials.
                </p>
                <p>
                    <a href="https://learn.microsoft.com/aspnet/core/data/ef-rp/intro" class="streched-link">See The Tutorials</a>
                </p>
            </div>
        </div>
    </div>
    <div class="col-md-4">
        <div class="row no-gutters border mb-4">
            <div class="col p-4 d-flex flex-column">
                <p class="card-text mb-auto">
                    You can understand complete project from GitHub
                </p>
                <p>
                    <a href="https://github.com/dotnet/AspNetCore.Docs/tree/master/aspnetcore/data/ef-rp/intro/samples" class="streched-link">Project Source Code
                    </a>
                </p>
            </div>
        </div>
    </div>
</div>

Here is a demo to show Courses with DataTable: Controller(I use fake data to test):这是一个用DataTable显示课程的演示:控制器(我使用假数据进行测试):

public IActionResult LoadData1()
        {
            List<Course> l = new List<Course> { new Course {  CourseID=1, Credits=1, Title="Maths"}, new Course { CourseID = 2, Credits = 2, Title = "English" }, new Course { CourseID = 3, Credits = 3, Title = "PE" } };
            return Json(l);
        }

View(You need to load jquery before dataTables.In columns,you need to lowercase the first letter): View(需要在dataTables前加载jquery,columns中首字母小写):

<table id="myDataTable">
    <thead>
        <tr>
            <td>CourseID</td>
            <td>Title</td>
            <td>Credits</td>

        </tr>
    </thead>
    <tbody>
    </tbody>

</table>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src="https://cdn.datatables.net/1.10.8/js/jquery.dataTables.min.js"></script>
    <script>
        $(document).ready(function () {
            $('#myDataTable').DataTable({
                ajax: {
                    url: '/Test1/LoadData1',
                    "dataSrc": ""
                },
                columns: [
                    { data: "courseID" },
                    { data: "title" },
                    { data: "credits" }

                ]
            });
        });


    </script>

result:结果: 在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 Visual Studio 代码创建 Asp.net MVC 应用程序(非核心) - Create Asp.net MVC Application (not core) with visual studio code Visual Studio Code 调试默认的 ASP.NET Core MVC WebApp:不起作用 - Visual Studio Code debugging the default ASP.NET Core MVC WebApp: does not work 在ASP.Net Core MVC中未调用LoginController(在Visual Studio Code中) - LoginController not being called in ASP.Net Core MVC (In Visual Studio Code) 在Visual Studio Code中调试多个ASP.NET Core项目 - Debug multiple ASP.NET Core projects in Visual Studio Code 使用 ASP.NET MVC C# Visual Studio 2017 在 DataTable Id 中显示 id 数据和删除 - Display id data and Delete in DataTable Id Using ASP.NET MVC C# Visual Studio 2017 Visual Studio 2017 不会在 ASP.NET Core MVC 项目中创建新的空 MVC 控制器 - Visual Studio 2017 does not create a new empty MVC controller in ASP.NET Core MVC project 使用asp.net mvc 3的jquery网络摄像头插件 - jquery webcam plugin with asp.net mvc 3 Asp.net核心MVC和JQuery提交 - Asp.net core MVC and JQuery submit Visual Studio Visual Studio MVC asp.NET Google Map - Visual Studio Visual Studio MVC asp.NET Google Map SonarLint Visual Studio 2015插件不支持asp.net核心? - SonarLint Visual Studio 2015 plugin does not support asp.net core?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM