今天我刚学习了使用Visual Studio 2015新建了.NET Core项目写了一个小的CSHTML代码。按我的话说就是,把C#和HTML合起来使用了,
写了一个简单的关于学生的“增” “删” “改"  "查"的一系列的代码(只是一个简单的关于的学生的“增” “删” “改"  "查"代码哦)。
今天可以说是我第一次接触CSHTML,学会了把简单的代码在网页上显示出来。
这种技术叫ASP.NET Core是一个全新的跨平台的框架,主要用于架构如Web应用等连接互联网的现代应用程序,可以在Windows上跨平台
开发和运行你的ASP.NET Core应用。 一开始就从数据库查询所须的条件
public IActionResult Index()
      {
          var list = new List<Dictionary<string, dynamic>>(); //用字典接收每一个事物的所有值
          using (var con = new SqlConnection("server=.;database=MySchool;uid=sa;pwd=ljk123;"))
          //连接数据库
          {
              var cmd = new SqlCommand();
              cmd.Connection = con;
              cmd.CommandText = @"select StudentNo,StudentName,Sex,t2.GradeName from Student t1 ,Grade t2
                                  where t1.GradeId= t2.GradeId";
              //按传递的Sql语句执行操作
              con.Open();
              var dr = cmd.ExecuteReader();
              while (dr.Read())
              {
                  list.Add(Enumerable.Range(0, dr.FieldCount).ToDictionary(dr.GetName, dr.GetValue));
              }
              //循环遍历
          }
          ViewData["Persons"] = list; //将遍历出来的值赋到ViewData["变量名"]中。
          return View();
      }
然后在Imdex中按表单的形式查询所查学生的信息
<table border="0" title="添加">
    <caption>添加信息</caption>
    <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>年级</th>
    </tr>
    <tr>
        <td imput type=text></td>
        <td imput type=text></td>
        <td imput type=text></td>
        <td imput type=text></td>
    </tr>
</table>
<table class="table table-bordered table-hover table-condensed table-responsive table-striped">
    <thead>
        <tr>
            <th>学号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年级</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in ViewData["Persons"] as System.Collections.Generic.List<Dictionary<string,dynamic>>)
        {
        <tr>
            <td>@item["StudentNo"]</td>
            <td>@item["StudentName"]</td>
            <td>@item["Sex"]</td>
            <td>@item["GradeName"]</td>
            <td>
                <a class="btn btn-success" href="/home/modify?bh=@item["StudentNo"]">修改</a>
                <button class="btn btn-danger"  onclick="deletestu('@item["StudentNo"]')">删除</button>
            </td>
        </tr>
        } 
    </tbody>   
</table>

然后在HomeController中添加学生信息(Get Post)

[HttpGet]
       public IActionResult Add()
       {
           ViewData["Message"] = "Your application description page.";            return View();
}
       [HttpPost]
       public IActionResult Add(string mc, string bh, string gen, int nj)
       {
           var list = new List<Dictionary<string, dynamic>>(); //用字典接收每一个事物的所有值
           using (var con = new SqlConnection("server=.;database=MySchool;uid=sa;pwd=ljk123;"))
           //连接数据库
           {
               var cmd = new SqlCommand();
               cmd.Connection = con;
               cmd.CommandText = $@"insert into Student(StudentNo,StudentName,Sex,GradeId)
                                     values('{bh}','{mc}','{gen}',{nj})";
               //按传递的Sql语句执行操作
               con.Open();
               var dr = cmd.ExecuteNonQuery();
               if (dr > 0)
               {
                   return Redirect("/home/index");
               }
               else
               {
                   ViewData["Message"] = "添加失败!";
                   return View();
               }
           }
       }

在add按表单排版,"添加"新的学生信息

<form method="post" action="/home/add">
<p>学生编号:<input name="bh" class="form-control" type="text"></p>
<p>学生姓名:<input name="mc" class="form-control" type="text"></p>
性&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp别:
<input name="gen" type="radio" class="input" value="男" checked="checked">男  <input name="gen" type="radio" class="input" value="女">女 <br />
年&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp级:
<select name="nj">
<option value="1">S1</option>
<option value="2">S2</option>
<option value="3">Y2</option>
<option value="1" selected="selected">S1</option> </select> <br /><br />
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
<input type="reset" name="Reset" value="重填">&nbsp&nbsp&nbsp&nbsp
<input type="submit" name="Submit" value="提交">
</form>
@ViewData["Message"]

  在HomeController中修改学生信息(Get Post)

[HttpGet]
public IActionResult Modify(string bh)
{
ViewData["Message"] = "Your contact page.";
Dictionary<string, dynamic> dic = null;
using (var con = new SqlConnection("server=.;database=MySchool;uid=sa;pwd=ljk123;"))
//连接数据库
{
var cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = $@"select StudentNo,StudentName,Sex,GradeId from Student
where StudentNo= '{bh}'";
//按传递的Sql语句执行操作
con.Open();
var dr = cmd.ExecuteReader(); while (dr.Read())
{
dic = (Enumerable.Range(0, dr.FieldCount).ToDictionary(dr.GetName, dr.GetValue));
}
//循环遍历
}
ViewData["Person"] = dic; //将遍历出来的值赋到ViewData["变量名"]中。
return View();
}
[HttpPost]
public IActionResult Modify(string mc, string bh, string gen, int nj)
{
var list = new List<Dictionary<string, dynamic>>(); //用字典接收每一个事物的所有值
using (var con = new SqlConnection("server=.;database=MySchool;uid=sa;pwd=ljk123;"))
//连接数据库
{
var cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = $@"update Student set StudentNo = '{bh}',StudentName='{mc}',Sex='{gen}',GradeId='{nj}'
where StudentNo = '{bh}'";
//按传递的Sql语句执行操作
con.Open();
var dr = cmd.ExecuteNonQuery();
if (dr > 0)
{
return Redirect("/home/index");
}
else
{
ViewData["Message"] = "更新失败!";
return View();
}
}
return View();
}

 通过把学生的编号传过去修改

 <a class="btn btn-success" href="/home/modify?bh=@item["StudentNo"]">修改</a>

  

 在Midify中排版修改

<form method="post" action="/home/Modify">
<p>学生编号:<input name="bh" class="form-control" disabled="disabled" type="text" value="@((ViewData["Person"] as Dictionary<string, dynamic>)["StudentNo"])"></p>
<p>学生姓名:<input name="mc" class="form-control" type="text" value="@((ViewData["Person"] as Dictionary<string, dynamic>)["StudentName"])"></p>
性&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp别:
@if ((ViewData["Person"] as Dictionary<string, dynamic>)["Sex"] == "男")
{
<input name="gen" type="radio" class="input" value="男" checked="checked"><span>男</span>
<input name="gen" type="radio" class="input" value="女"><span>女</span>
}
else
{
<input name="gen" type="radio" class="input" value="男"><span>男</span>
<input name="gen" type="radio" class="input" value="女" checked="checked"><span>女</span>
}
</br>年&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp级: <select name="nj">
@if ((ViewData["Person"] as Dictionary<string, dynamic>)["GradeId"] == 1)
{
<option value="1" selected="selected">S1</option>
<option value="2">S2</option>
<option value="3">Y2</option>
}
else if (((ViewData["Person"] as Dictionary<string, dynamic>)["GradeId"] == 2))
{
<option value="1">S1</option>
<option value="2" selected="selected">S2</option>
<option value="3">Y2</option>
}
else
{
<option value="1">S1</option>
<option value="2">S2</option>
<option value="3" selected="selected">Y2</option>
}
</select> <br /><br />
<input type="reset" name="Reset" value="重填">
<input type="submit" name="Submit" value="提交">
</form>

  最后是删除了通过接收到的编号进行删除

<button class="btn btn-danger"  onclick="deletestu('@item["StudentNo"]')">删除</button>

  在HomeController中删除学生信息(post)

[HttpPost]
public string Delete(string bh)
{
ViewData["Message"] = "Your contact page."; using (var con = new SqlConnection("server=.;database=MySchool;uid=sa;pwd=ljk123;"))
//连接数据库
{
var cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = $@"delete from Student
where StudentNo= '{bh}'";
//按传递的Sql语句执行操作
con.Open();
var dr = cmd.ExecuteNonQuery();
if (dr > 0)
{
return "删除成功!";
}
else
{
return "删除失败!";
}
}
}

 最后在用AJAX进行删除 

<script>    //定义客户端脚本
function deletestu(bh) // function 功能,作用;
{
if (confirm("确定要删除吗?")) {
$.post("/home/delete", { bh: bh }, function (result) { alert(result);
window.location.href="/home/index";
})
}
}
</script>

  



 

新的开始 接触ASP.NET Core跨平台的框架的更多相关文章

  1. 《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf

    <ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于 ...

  2. 在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序

    引子 在此前的一篇文章中,我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序(http://www.cnblogs.com/chenxizhang/p/7148657.ht ...

  3. asp.net core的DI框架思考以及服务实例的获取方式总结

    转载请注明出处: https://home.cnblogs.com/u/zhiyong-ITNote/ 整个asp.net core管道从WebHostBuilder到WebHost到后续请求的类中, ...

  4. ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 使用 EF 框架查询数据 上一章节我们学习了如何设置 ...

  5. ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF 框架服务 上一章节中我们了解了 Entity ...

  6. asp net core 跨平台初体验

    标: 在 ubuntu 16.04 上部署一个 asp.net core 站点,打开网站后显示一段文字.   安装 net core 运行环境:ubuntu 16.04 LTS 1.添加 apt 源 ...

  7. asp.net core跨平台开发从入门到实战文摘

    第1章 .NET Core 第2章 dotnet命令 第3章 VS Code安装及介绍 第4章 VS2015开发.NET Core 第5章 ASP.NET Core 第6章 EF Core 第7章 A ...

  8. Asp.net Core基于MVC框架实现PostgreSQL操作

    简单介绍 Asp.net Core最大的价值在于跨平台.跨平台.跨平台.重要的事情说三遍.但是目前毕竟是在开发初期,虽然推出了1.0.0 正式版,但是其实好多功能还没有完善.比方说编译时的一些文件编码 ...

  9. 如何基于asp.net core的Identity框架在mysql上作身份验证处理

    首先了解这个概念,我一开始也是理解和掌握基本的概念,再去做程序的开发.Identity框架是微软自己提供,基于.net core平台,可拓展.轻量 级.面向多个数据库的身份验证框架.IdentityS ...

随机推荐

  1. react 实现路由按需加载

    import() 方法: async.js 文件内容: import React from 'react'; // import "babel-polyfill"; //compo ...

  2. c++获取键盘输入cin、scanf使用详解

    cin是c++标准,scanf是在c中使用的 #include<cstdio> #include<iostream> #include<cstring> using ...

  3. NET设计模式 第二部分 行为型模式(17):迭代器模式(Iterator Pattern)

    概述 在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据. ...

  4. Go语言加解密--AES简单实践

    AES加解密的简单实现,代码如下. package main import ( "crypto/aes" "crypto/cipher" "encod ...

  5. 自然语言处理之Levenshtien Distance算法研究

    自然语言处理中,一个很重要的应用就是问答系统,这里面,涉及到问题和知识库里面的问题的匹配度,从而检索出问题的答案,这个是一个比较常见的应用算法. 编辑距离(Edit Distance),又称Leven ...

  6. 基于zookeeper的activemq的主从集群配置

    项目,要用到消息队列,这里采用activemq,相对使用简单点.这里重点是环境部署. 0. 服务器环境 RedHat710.90.7.210.90.7.1010.90.2.102 1. 下载安装zoo ...

  7. TL-WDR4310 v1 救砖

    一.引出ttl线 用万用表测量,可以确定“GND”,第一个pin(焊盘为方的)为“Tx”,接下去依次为“Rx”.”GND”.”VCC“. 二.工具准备 下载tptpd软件工具,图标为 三.开始刷机 1 ...

  8. 服务器病了吗? Linux 服务器的那些性能参数指标

    一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候, ...

  9. Nuke的色彩匹配节点思路

    大致思路是首先利用node.sample()自带采样功能对整个画面逐像素采 样,我把采样函数写的比较灵活,可以定义一个采样族,即把整个画面分成若干块,逐块采样,很大程度上减少了采样工作量,但相对精度会 ...

  10. 【git】之clone(克隆)

    直接克隆 git clone https://github.com/gyjx/test.git 指定克隆某个分支 git clone -b dev https://github.com/gyjx/te ...