1.C# 中的虚方法 和 C++中的作用一致,能让指向子类的父类指针优先到子类中寻找方法,而不是直接调用父类中的方法。

看一段例子回忆下:

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Person student = new Student();
student.speak();
student.sing(); }
} class Person {
public virtual void speak() {
Console.WriteLine("person speak");
} public void sing() {
Console.WriteLine("person sing");
}
} class Student:Person
{
override public void speak()
{
Console.WriteLine("student speak");
} new public void sing() {
Console.WriteLine("student sing");
}
}
}

输出如下:

2. 在程序中使用 HttpContext.Current.Session["CurrentAdmin"] = objAdmin; 这类的与session相关的函数后,asp.net 框架会默认添加一个名为 ASP.NET_SessionId 的cookie,这个cookie有24个字符,用来让系统区分请求所对应的session。如果确实不希望这个字段出现在cookie里,可以通过调用 Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddYears(-1); 让这个cookie过期,游览器就会自动删除这个cookie。另外这个cookie是保存在内存中的,并不会在磁盘上,所以关了游览器,cookie也就没了。

3. 今天开发遇到一个bug,说的是关于assembly未正确配置,其实这个assembly在.NET中就是对应的dll文件,如果出错,就需要看看是不是在bin文件夹中缺失了某个dll。

4.今天做一个上传功能,在服务器端用的是Server.MapPath 这个方法获得路径,具体的路径是/Upload ,在默认iis express 运行环境下,没有问题,后来为了调试,把程序放到了本机的IIS上,结果上传没有错误,却取不到数据了。后来发现,这个网站被当做了子站发布在了IIS的默认网站下,那么Server.MapPath 其实返回的是http://localhost/Upload ,也就是在主站点下的upload文件夹,而不是 子站的http://localhost/webapplication/Upload. 所以上传虽然成功了,但是上传的位置错了!要解决问题,把网站作为单独主站点就可以了。

我的错误配置如下:

这种在主机端口号后,还有一个路径的写法,系统就会为我们创建子文件夹存放数据,但是运行时取到的server的path信息,会是主站点的虚拟路径。

正确的做法是,先在IIS中创建一个站点,配置好信息,之后在vs中进行配置,修改后的截图如下:

5. 今天在写Entity Framework相关代码时,没有把实体中的关联属性声明为Virtual,结果发现,无法从数据库读取关联属性了,结果全部是null,后来查看了以下文章:

https://stackoverflow.com/questions/8542864/why-use-virtual-for-class-properties-in-entity-framework-model-definitions?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

这里面说到了,如果不使用virtual对 navigation 属性声明,取出的对象就不会包含navigation属性的相关内容,其实就是不会对navigation属性进行sql检索操作。但即使不声明,也可以通过其他方法读取内容。比如以下代码:

context.Votes.Include(v => v.ToUser).ToListAsync();

这样检索的话,即使 vote 的 toUser 属性没有声明为virtual,也可以被sql一次性读取出来。另外,目前.Net Core 中的 EntityFramework core 默认不支持virtual这种懒加载。

再看看stackoverflow上关于ef中的virtual的说明:

If you opt to never use the lazy loading or change tracking features of the Entity Framework (which is not the default) then you needn't declare any of your navigation properties as virtual. You are then responsible for loading those navigation properties yourself, either using what the Entity Framework refers to as "eager loading", or manually retrieving related types across multiple database queries.

6.关于IIS 中的 module 和 handler。 在web.config里,经常可以看到对module 和 handler的配置section。这里的module和handler既可以是自己写的,也可以是系统提供的。我对module的理解就是,它处理通用的逻辑,比如,身份验证,一个请求可以经过任意多个module的处理。handler针对的是某一类资源的,比如aspx,是真正的处理请求,返回数据的结构,一个请求,只能经过一个handler的处理。推荐一个文章https://www.cnblogs.com/fengzheng/p/3666774.html

初学ASP.NET 知识点的更多相关文章

  1. 初学Java 精简知识点总结

    面对Java丰富的知识资料,很多初学者难免觉得迷惘,该学什么,怎么去学?下面给大家讲Java基础知识做了精简总结,来帮助你梳理学习思路,赶快看看吧! 方法/步骤1 对象的初始化(1) 非静态对象的初始 ...

  2. ASP.net知识点

    2 .列举ASP.NET 页面之间传递值的几种方式. 答: (1)QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中. 如果是传递一个或多个安全性要求不高或是结构简 ...

  3. ASP.Net 知识点总结(四)

    1.get和post 的区别 get是从服务器上获取数据,post是向服务器传送数据; get安全性非常低,数据显示在地址栏,post安全性较高: 但是执行效率却比Post方法好: get有字节限制为 ...

  4. ASP.Net 知识点总结(三)

    1.描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答:不是.可以用任意类型. 2.<%# %> 和 <% %> 有什么区别? 答:<%# %>表示绑定 ...

  5. Asp.NET 知识点总结(二)

    1.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的 hash code 编码格式. 2.swtich是否能作用在byte ...

  6. Asp.NET 知识点总结(一)

    1.简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有类,私有成员, 在类的内部才可以访问. protected : ...

  7. ASP.NET知识点汇总

    一 ,html属性20181113常用的居中方法1 text-align2 float3 margin (margin-left matgin-right margin-bottom margin-t ...

  8. 初学JQuery相关知识点

    [简单的JQuery]注册事件的函数. $(document).ready(function(){}) [JQuery提供的函数]$.map(array,fn) 对数组array中每个元素调用fn函数 ...

  9. ASP.NET 知识点总结(七)

    1.new修饰符是起什么作用new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员.而new 操作符用于实例化一个类型new 修饰符只能用于继承类,一般用于弥补基类设计的不足new 修饰符和 ...

随机推荐

  1. IIS7下设置https主机名灰色无法修改

    打开iis绑定域名时,点击绑定弹出绑定框,在选择类型为“https”的时候,主机名为灰色的无法填写 解决方法: 1. 选择https,在选择相应的SSL证书,点击确定 2. 打开C:\Windows\ ...

  2. NIO的初步入门

    NIO java NIO简介 Java NIO 简介 是从java1.4版本开始引入的一个新的IO AP可以替代标准java  IO API NIO与原来的IO有同样的作用和目的,但是使用方式完全不同 ...

  3. LODOP中tfoot和tbody中间线连不起来

    这种情况发生在使用ADD_PRINT_TABLE时,ADD_PRINT_TABLE是Lodop中专门用来输出table表格的语句,它有很多特点,比如该语句不切行(详细可参考查看本博客相关博文:LODO ...

  4. a标签 download base64 下载 网络失败

    使用html2canvas 生成尺寸较大 base64 后进行 a标签  download 下载 ,浏览器报网络失败错误 通过谷歌搜索 发现原因是 因为截取尺寸较大  导致生成base64 长度太大 ...

  5. layui——Cannot create property 'LAY_TABLE_INDEX' on number '1'

    前言 用layui写的后台,PHP处理好数据传输过来的时候报错了,最后发现是数据处理成layui格式的时候出错了,直接传了json对象过来,layui需要的是一个json的数. 解决 外面套成数组即可 ...

  6. 【THUSC2017】【LOJ2979】换桌 线段树 网络流

    题目大意 有 \(n\) 个圆形的桌子排成一排,每个桌子有 \(m\) 个座位. 最开始每个位置上都有一个人.现在每个人都要重新选择一个座位,第 \(i\) 桌的第 \(j\) 个人的新座位只能在第 ...

  7. linux服务器上,yum、rpm、源码编译安装及卸载

    源码的编译安装及卸载 源码安装三部曲 1.生成makefile编译文件./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文件常用的参数: --prefi ...

  8. BZOJ5261 Rhyme--广义SAM+拓扑排序

    原题链接,不是权限题 题目大意 有\(n\)个模板串,让你构造一个尽量长的串,使得这个串中任意一个长度为\(k\)的子串都是至少一个模板串的子串 题解 可以先看一下这道题 [POI2000]病毒 虽然 ...

  9. mysql的服务器构成

    什么是实例 这里的实例不是类产生的实例对象,而是Linux系统下的一种机制 1.MySQL的后台进程+线程+预分配的内存结构. 2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内 ...

  10. Java基础 -- 深入理解Java异常机制

    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...