C# 托管资源 与 非托管资源

C# 托管资源 与 非托管资源

托管资源:一般是指被CLR控制的内存资源,这些资源由CLR来管理。可以认为是.net 类库中的资源。
非托管资源:不受CLR控制和管理的资源,比如文件流,数据库的连接,网络连接,系统的窗口句柄,打印机资源等,
这类资源一般不存在堆上。可以认为操作系统资源的一组API。
对于托管资源,GC负责垃圾回收。对于非托管资源,GC可以跟踪非托管资源的生存期,但是不知道如何释放它,这时候就要人工进行释放。
2、CLR:公共语言运行库(Common Language Runtime,CLR)是整个.NET框架的核心,
它为.NET应用程序提供了一个托管的代码执行环境。
它实际上是驻留在内存里的一段代理代码,负责应用程序在整个执行期间的代码管理工作,
比较典型的有:内存管理、线程管理、安全管理、远程管理、即使编译、代码强制安全类检查等,
这些都可以成为.NET框架的生命线
3、控制器上进行数据验证:用户组/角色、验证工号、验证用户名、验证邮箱号、检查数据库是否已经存在存在准备新增的用户的工号、开启事务、用户输入的密码进行AES265加密、提交事务。
1、 视图上对输入的邮箱号进行校验、确认保存的操作、数据验证、用户密码验证、ajax 异步请求、使用JQuery发送FormData数据、$.post(“url”, {}, function () { })
用户数据绑定:
1、 使用三目运算符获取Session中的userGroup名称
2、 多条件查询的条件筛选
3、 查询数据总条数
4、 、分页查询用户数据: LayuiTableData layuiTableData = new LayuiTableData();
layuiTableData.count = intTotalRow;
layuiTableData.data = listUser;
5、 layui 表格自定义列 //table 表格中返回修改单元中的修改图标
6、 修改用户状态:layer 询问框(询问内容,参数选项,确定按钮回调,[取消按钮回调])
7、修改的方法:弹出修改的模态窗体、删除用户数据
1、 对输入的邮箱号进行校验
2、 在用户输入“确认密码”后检查两次输入的密码是否相同
10、保存修改数据

1、复写父类的该方法,执行控制器中的方法之前先执行该方法,从而实现过滤的功能
OnActionExecuting 和OnActionExecuted 的区别在于OnActionExecuting是在执行控制器之前执行
而OnActionExecuted 是在执行完控制器之后执行的
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
//验证用户登录
try
{
userID = Convert.ToInt32(Session[“userID”].ToString());
}
catch (Exception e)
{
Console.WriteLine(e);
filterContext.Result = Redirect(Url.Content("~/Main/Login"));//重定向到登录
}
}
或者:if (Session[“userID”] == null)
{
//没有登录,重定向 ,不会执行后续的方法,而是直接跳转到登录页面
filterContext.Result = Redirect("/Main/Login");
}
else
{
userID = (int)Session[“userID”];
}

2、从控制器传递数据到视图
ViewData与ViewBag的区别:
1、ViewData是字典类型,赋值方式以键值对的形式,通过key值读取对应的value, ViewData[“myName”]。
2、ViewBag是动态类型,使用时直接添加属性赋值点即可 ViewBag.myName。
3、ViewBag和ViewData只在当前Action中有效,等同于View。
4、ViewData和ViewBag 中的值可以互相访问,因为ViewBag的实现中包含了ViewData,ViewBag是对ViewData一个动态封装。
5、ViewData比ViewBag快;ViewBag更方便,在使用数据时不需要类型转换

ViewBag.ticketInfor = ticketInfor;
ViewBag.eTicketID = eTicketID;
ViewBag.airportInfors = listAirport;
ViewBag.certificateTypes = listCertificateType;
视图的接收数据:
List listAirports = ViewBag.airportInfors;
List listCertificatesType = ViewBag.certificateTypes;
3、JQuery代码点击事件 页面加载事件
$(document).ready(function){ } ;

获取值的方法
Var 属性名=$(“获取值的ID”).val();
通过ID选择器获取元素 $("#id");
通过类选择器获取元素 $(".classname")
element元素选择器 $(“标签名称”);
全选择器 $("*")

异步提交
$.post(“”,{键值对 },function(接收的参数){ 函数})

//快捷键确认 Enter键
$(“body”).keyup(function (e) {
if (e.keyCode == 13){
$("#btnSubmit").click();
}
});
layui.form监听select选择 语法 form.on(‘select(filter)’, function(data){}) 如果想监听所有的select,去掉过滤器(filter)即可
文本框设置为只读 readonly;下拉框设置为禁用 disabled

你可能感兴趣的:(MVC,html,c#,windows)