目录
一、基础篇
1.新建.Net Core项目
新建>>项目>>选择C#语言>>选择ASP.NET Core Web应用程序>>Web应用程序(模型视图控制器)
2.ASP.Net Core目录结构
目录文件 | 说明 |
依赖项 | ASP.NET Core 开发、构建和运行过程中的依赖项,一般都是 NuGet 包和一些 SDK |
Properties | 配置,存放了一些 .json 文件用于配置 ASP.NET Core 项目 |
Propertics/launchSettings.json | 启动配置文件,为一个 ASP.NET Core 应用保存特有的配置标准,用于应用的启动准备工作,包括环境变量,开发端口等 |
Controllers | 类的存放目录 |
Views | 视图的存放目录 |
wwwroot | 网站根目录,存放类似于 CSS、JS 和图片、还有 HTML 文件等静态资源文件的目录 |
Program.cs | 这个文件包含了 ASP.NET Core 应用的 Main 方法,负责配置和启动应用程序 |
Startup.cs | tartup.cs 文件是 ASP.NET Core 的项目的入口启动文件 |
3.常见的命名法
1)驼峰命名法
小驼峰命名法:除第一个单词之外,其他单词首字母大写,例如:myFirstName
、myLastName
。常用于变量名,函数名。
大驼峰命名法(又称为帕斯卡命名法):相比小驼峰法,大驼峰法把第一个单词的首字母也大写了,例如:public class DataBaseUser
。常用于类名,属性,命名空间等。
2)下划线命名法
名称中的每一个逻辑断点都用一个下划线来标记,例如:print_employee
。下划线命名法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
3)匈牙利命名法
其基本原则是,变量名=属性+类型+对象描述。通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。
这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpsStr
,表示指向一个字符串的长指针成员变量。
4.Hello,World!
新建一个.Net Core项目>>在Controllers目录中添加控制器类>>名称为HelloWorldController.cs
在实例化对象中新建一个数据>>右击实例化对象>>添加视图
using Microsoft.AspNetCore.Mvc;// 引用命名
//命名空间
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace WebApplication4.Controllers
{
public class HelloWorldController : Controller
{
// GET: /<controller>/
public IActionResult Index()//实例化对象
{
ViewData["Text"] = "Hello,World";//创建名为Text的数据
return View();
}
}
}
在视图中调用数据
<!--调用数据-->
<h2>@ViewData["Text"]</h2>
调试,在你的域名后面添加/HelloWorld进入到HelloWorld目录
5.运算符
运算符 | 描述 |
+ | 把两个操作数相加 |
- | 从第一个操作数中减去第二个操作数 |
* | 把两个操作数相乘 |
/ | 分子除以分母 |
% | 取模运算符,整除后的余数 |
++ | 自增运算符,整数值增加 1 |
-- | 自减运算符,整数值减少 1 |
6. 运算符练习
获取数字的个位,十位,百位,千位
using Microsoft.AspNetCore.Mvc;
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace WebApplication4.Controllers
{
public class HelloWorldController : Controller
{
// GET: /<controller>/
public IActionResult Index()
{
int Num = 1024;
ViewData["Num"] = Num;
ViewData["qianwei"] = "千位:" + Num / 1000;
ViewData["baiwei"] = "百位:" + Num / 100 % 10;
ViewData["shiwei"] = "十位:" + Num / 10 % 10;
ViewData["gewei"] = "个位:" + Num % 10;
return View();
}
}
}
<!--调用数据-->
<h1>数字
@ViewData["Num"]的
</h1>
<h2>@ViewData["qianwei"]</h2>
<h2>@ViewData["baiwei"]</h2>
<h2>@ViewData["shiwei"]</h2>
<h2>@ViewData["gewei"]</h2>
7.if...else语句
比较两个数大小
using Microsoft.AspNetCore.Mvc;
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace ifelse.Controllers
{
public class ifelse : Controller
{
// GET: /<controller>/
public IActionResult Index()
{
int Num1 = 10;
int Num2 = 20;
if (Num1 > Num2)
{
ViewData["ifNum"] = Num1 + "比" + Num2 + "大";
}
else if (Num1 < Num2)
{
ViewData["ifNum"] = Num1 + "比" + Num2 + "小";
}
else {
ViewData["ifNum"] = Num1 + "等于" + Num2;
};
return View();
}
}
}
二、进阶篇
1.Ajax传值
使用Ajax把值传到控制层再返回结果
js代码
function ajax() {
var Num = document.getElementById("Num").value;
if (Num != "") {
var information = JSON.stringify({
num: Num
});
}
var xhr = new XMLHttpRequest;//创建一个 XMLHttpRequest 对象,XMLHttpRequest是实现ajax的基础
xhr.open("POST", "/Ajax/AjaxAsync", true)//请求方式为"Post","/Home/Index"为服务器地址(在MVC这里就是控制器地址+方法名),true表示选择异步
xhr.setRequestHeader("Content-type", "application/json")//设置请求参数类型
xhr.send(information);
//返回
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var a = xhr.responseText;
document.getElementById("Alert").innerHTML = JSON.parse(a).result;
}
}
}
C#代码
using Microsoft.AspNetCore.Mvc;
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace Ajax传值.Controllers
{
public class AjaxController : Controller
{
// GET: /<controller>/
public IActionResult Index()
{
return View();
}
public IActionResult AjaxAsync([FromBody]Model model)
{
if (model != null)
{
string Num = model.num;
ViewData["Num"] = Num;
return Json(new { result = "你输入是数字是:" + Num });
}
else
{
return Json(new { result = "你没有输入数字" });
}
}
public class Model
{
public string num { get; set; }
}
}
}
视图代码
<script src="~/js/ajax.js"></script>/
<div class="container">
<a id="Alert"></a><br />
输入一个数字:
<input type="text" id="Num" />
<button id="sumbit" onclick="ajax()">确定</button>
</div>
2.SQL server数据库的连接
连接数据库,通过sql语句进行数据查询(如何安装使用数据库,主页有单独文章)
在appsettings.json插入以下内容实现数据库连接
"ConStr": "Data Source=服务器名称;database=数据库名称;uid=账号;pwd=密码",
完整代码
{
"ConStr": "Data Source=服务器名称;database=数据库名称;uid=账号;pwd=密码",
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
通过Startup.cs的ConfigureServices对象中插入以下内容可以实现调用appsettings.json内容
HomeController.ConStr = Configuration["ConStr"].Trim();//HomeController是你的类名
完整对象代码
public void ConfigureServices(IServiceCollection services)
{
HomeController.ConStr = Configuration["ConStr"].Trim();
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
在class类中引入ConStr常量,位置如下
public class HomeController : Controller
{
public static string ConStr { set; get; }
创建一个SQL语句变量
string sql = string.Format("select * from [{0}] where username like '%" + 查询的内容 + "%'", "数据表名");//where后面是是列名,“%”表示模糊查询
剩下的代码如下
connection.Open();//打开数据库
SqlCommand cmd = new SqlCommand(sql, connection);//SQL语句调用
SqlDataReader sdr = cmd.ExecuteReader();//从数据库中读取数据
string username = sdr["列名"].ToString();//创建一个变量存放数据
ViewBag.db = username;//把数据存到ViewBag.db里面,前端可以直接调用输出
connection.Close();//关闭数据库
视图代码输出
<h2>@ViewBag.db</h2>