ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境:
win10,SQL Server 2008 R2

参考:
asp.net mvc框架之EF的使用 - black娃 - 博客园
https://www.cnblogs.com/fjiqiang/p/11131365.html


目录

  • 数据库查询
    • 要求
    • 思路
    • 操作
  • razor使用
  • 项目发布
    • 要求
    • 实现

数据库查询

要求

从服务器的数据库中查询N条数据。

思路

  1. 使用NuGet安装EF(Entity Framework)
    在这里插入图片描述
  2. 参考上述链接,使用FluentAPI方式配置

操作

  1. 配置连接
    找到项目目录下的Web.config(不是Views文件夹下的),找到<connectionStrings>,在其中添加字符串,类似下面:
  <connectionStrings><add name="conn1" connectionString="data source=SqlServerIP;initial catalog=数据库名称;user id=用户名;password=密码;" providerName="System.Data.SqlClient"/></connectionStrings>

其中name是给数据库链接起的名字,后面会用到。
2. 在数据库上创建对应表,假设我的表叫enhancer,包含下面几列。
在这里插入图片描述
3. 在Models文件夹下创建文件Enhancer.cs,写一个跟表对应的类:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;namespace WebApplication1.Models
{[Table("dbo.enhancer")]public class Enhancer{public int id { get; set; }public string name { get; set; }public string seq { get; set; }public string descs { get; set; }public string notes { get; set; }public string refs { get; set; }}
}
  1. 创建DbContext类:这里用到了前面提到的、数据库连接的名称。
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Reflection;
using System.Web;namespace WebApplication1.Models
{public class MyDbContext:DbContext{public MyDbContext() : base("name=conn1") { }public DbSet<Enhancer> enhancers { get; set; }// 每操作一个表这里就要写一个DbSet<实体类>protected override void OnModelCreating(DbModelBuilder modelBuilder){base.OnModelCreating(modelBuilder);//从某个程序集中加载所有继承自EntityTypeConfiguration类到配置中modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());}}
}
  1. 创建实体类的配置类。每个实体类都要写一个配置类,所以我写了一个叫做DBConfig.cs的文件,里面每个配置类如下:
public class EnhancerConfig:EntityTypeConfiguration<Enhancer>
{public EnhancerConfig(){this.ToTable("dbo.enhancer");}
}

记得修改对应的实体类名称和表名。
6. 操作数据库
以上写好之后,可以在某个Controller下这样写:

public ActionResult Detail(string id) {using (MyDbContext db = new MyDbContext()) {var name = "CMV-enhancer";// 这里是查找名称相同的。如果要模糊查找,可以使用Contains// p => p.Name.Contains(keyword)var enhancers = db.enhancers.Where(s => s.name == name).ToList();foreach (var en in enhancers){// 在控制台打印信息System.Diagnostics.Trace.WriteLine(en.seq);}}return View();
}

razor使用

前面写过blazor,写出的razor是以razor结尾的文件,不过在ASP.NET MVC里,razor是以cshtml结尾的。虽然语法有一点差异,但是大部分代码可以直接从blazor项目中复制过来。

我在复制时修改的点是这些:

  • blazor里,页面里的变量是在@code{}里写的,变量可以私有可以共有;@code{}也一般放在razor最后。但是asp.net里,页面里的变量要写在@{}里,不写访问控制,并且要放在页面顶端(防止报未定义错误),如下图所示:
    在这里插入图片描述
  • asp.net的razor也是可以展示一个对象的信息。比如我自定义了一个类叫Vector,其中有一个私有变量是List<b>,那么需要在页面上先写@model WebApplication1.Models.Vector,使用时写@Model.变量,比如:
    <circle cx="@Model.Cx" cy="@Model.Cy" r="@Model.OuterRadius" fill="#ccc" stroke="#ccc" stroke-width="1" />
    
  • 如果需要后台向前端传递一个对象,后台要写return View(对象);
  • 另外,asp.net直接写js是可以的,不用像blazor那种注入服务,所以要把之前写的诸如@onclick改成onclick
  • 后台如果要向前台传递简单的变量(比如string、int),那可以用ViewBag。举例:
    后台:
    double r = 300;
    ViewBag.Result = r;
    ...
    return View()
    
    前台:
    <p>The result of the calculation is: @ViewBag.Result</p>
    
    也可以使用ViewData。
    后台:
    ViewData["SerializedObject"] = json;
    
    前台:
    <pre>@ViewData["SerializedObject"]</pre>
    

项目发布

要求

要求发布在云服务器上,上面部署了IIS和sql server。

实现

  1. win10远程连接云服务器
    win+R,再输入mstsc,输入ip、用户名,验证时输入密码即可。

  2. 发布文件
    项目名称上右键点击发布,然后选择文件夹。
    在这里插入图片描述
    在这里插入图片描述
    然后复制整个文件夹到服务器上适当位置。注意检查端口是否开放。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

干货分享 | 学会这7个工具方法,数字化转型规划不是难题

提到数字化转型&#xff0c;首要做的便是分析企业现有的业务流程和价值流&#xff0c;发现企业利润来源的关键点&#xff0c;进而有针对性的数字化转型。要实现传统业务向数字化业务的转变&#xff0c;制定出高效、灵活的业务流程优化策略显得至关重要&#xff0c;这样才能找到…

简化数据提取:Excel-Extractor 使用指南

前言 在当今数据驱动的世界中&#xff0c;从复杂的 Excel 文件中提取和分析数据是许多业务和研究工作的基本需求。为了简化这一过程&#xff0c;Excel-Extractor 项目应运而生。本文将为你介绍 Excel-Extractor 的功能和如何在你的项目中使用它。 什么是 Excel-Extractor&…

【C#】制作图集

如题目&#xff0c;用好几个图片拼在一个大图里&#xff0c;博主是用于Unity游戏开发使用的&#xff0c;话不多说&#xff0c;上代码&#xff01; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging;namespace EffectsPac…

Spring Boot中的安全性配置详解

Spring Boot中的安全性配置详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何在Spring Boot应用中实现全面的安全性配置&#xff0c;保…

LED裸眼3D显示屏:开启视觉新体验

随着科技的不断进步&#xff0c;LED显示屏作为一种新型的显示技术&#xff0c;已经被广泛应用于各个领域。而其中&#xff0c;LED裸眼3D显示屏更是因其独特的技术原理和令人震撼的视觉效果&#xff0c;成为了业界关注的焦点。 裸眼3D显示屏是一种前沿的显示技术&#xff0c;它…

centos系统中neo4j数据库和python环境部署

最近因为项目需要&#xff0c;到了一个纯局域网环境中进行知识图谱构建。对于小规模数据&#xff0c;neo4j社区版能够满足基本的建模和查询需要&#xff08;大规模数据需要商业版&#xff0c;或是选用其他开源分布式图数据库如nebula等&#xff09;。本文主要介绍图数据库和pyt…

黄金架构编译部署

LNMP黄金架构部署 行走的CD: LNMP的解析过程:提到 LNMP的解析过程&#xff0c;我们应需要了解一个概念 CGI&#xff0c; CGI 就是指一个通用网关接口&#xff0c;用于 HTTP 服务器和其他应用服务器通讯的一个工具&#xff0c;在这 HTTP 服务器一般咱们就是指的是 Nginx、 Apac…

Java | Leetcode Java题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {// 抹去最右边的 1n n & (n - 1);}return n;} }

获取当前操作系统的名称platform.system()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 获取当前操作系统的名称 platform.system() [太阳]选择题 在Python中&#xff0c;platform.system() 函数被用来获取什么信息&#xff1f; import platform print("【执行】platform.s…

如何在Java中实现自定义数据结构

如何在Java中实现自定义数据结构 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我将为大家介绍如何在Java中实现自定义数据结构。尽管Java提供了丰富的内置…

05 threeJs基础---阵列立方体和相机适配体验立方体

1.增加相机视角fov 注&#xff1a; 范围更大&#xff0c;意味着可以看到渲染范围更大&#xff0c;远小近大的视觉效果更明显 fov:眼球张开的角度&#xff0c;0时相当于闭眼。aspect:可视区域横纵比。near:眼睛能看到的最近垂直距离。far&#xff1a;眼睛能看到的最远垂直距离。…

Python中的@property装饰器:深入理解与应用

Python中的property装饰器&#xff1a;深入理解与应用 在Python中&#xff0c;property装饰器是一个强大的工具&#xff0c;它允许我们将方法作为属性来访问&#xff0c;使得代码更加简洁、清晰&#xff0c;并提供了更好的封装性。本文将深入探讨property装饰器的工作原理、应…

字节数组输出流转换为Base64方法记录

1. 今天在做字节数组转换Base64的时候遇到一个问题&#xff0c;转换成的Base64字符串自动换行&#xff0c;导致传输失败 关键代码&#xff1a; ByteArrayOutputStream out new ByteArrayOutputStream(); ............. BASE64Encoder encoder new BASE64Encoder(); Stri…

Python 3 循环语句

Python 3 循环语句 Python 是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能而闻名。在 Python 中,循环语句是控制程序流程的关键组成部分,它们允许我们重复执行代码块,直到满足特定的条件。Python 3 提供了几种循环语句,包括 for 循环和 while 循环,以及一…

由于没有远程桌面授权服务器怎么办?

在现代的工作环境中&#xff0c;远程访问和远程桌面控制已经成为一项日益重要的需求。随着企业和组织的扩张&#xff0c;人们经常需要在不同的地点之间共享文件和应用程序。由于缺乏远程桌面授权服务器&#xff0c;这一过程可能会变得困难和不安全。 远程桌面授权服务器是一种…

day02-登录模块-主页鉴权

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.分析登录流程1.1传统思路是登录校验通过之后&#xff0c;直接调用接口&#xff0c;获取token之后&#xff0c;跳转到主页1.2vue-element-admin模板的登录思路&…

信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的

信息&#xff08;文字、图像、音频、视频等&#xff09;在计算机中是如何存储及显示的 图片的存储图片的文件格式像素数据的二进制表示存储和处理显示总结 图片的显示4. 像素点控制具体的像素控制过程示例总结 如题&#xff0c;这里以图片为例。 图片的存储 计算机桌面上的一…

基于盲信号处理的声音分离-基于改进的信息最大化的ICA算法

基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到最大&#xff0c;且输出各个分量之间的相关性最小化&#xff0c;即输出各个分量之间互信息量最小化&#xff0c;其算法的系统框图如图所示。 基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到…

华侨大学24计算机考研数据速览,专硕22408复试线290分,学硕11408接收调剂!

华侨大学计算机专业创建于1980年&#xff0c;是福建省最早设立计算机专业的高校之一。1982年成立计算机系&#xff0c;2008年成立计算机科学与技术学院。根据“华侨大学计算机科学与技术学院网站”资料&#xff0c;该院有计算机科学与技术、软件工程、网络工程3个本科专业&…

java中常见数据结构

ArrayList 是 Java 集合框架&#xff08;Java Collections Framework&#xff09;中的一个重要类&#xff0c;它实现了 List 接口&#xff0c;并提供了动态数组的功能。以下是 ArrayList 上的一些常用方法&#xff1a; 构造方法&#xff1a; ArrayList<E>(): 构造一个空的…