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.pswp.cn/diannao/36809.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36809.shtml
英文地址,請注明出處:http://en.pswp.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>(): 構造一個空的…