初学ASP.NET 知识点
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,后来查看了以下文章:
这里面说到了,如果不使用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 知识点的更多相关文章
- 初学Java 精简知识点总结
面对Java丰富的知识资料,很多初学者难免觉得迷惘,该学什么,怎么去学?下面给大家讲Java基础知识做了精简总结,来帮助你梳理学习思路,赶快看看吧! 方法/步骤1 对象的初始化(1) 非静态对象的初始 ...
- ASP.net知识点
2 .列举ASP.NET 页面之间传递值的几种方式. 答: (1)QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中. 如果是传递一个或多个安全性要求不高或是结构简 ...
- ASP.Net 知识点总结(四)
1.get和post 的区别 get是从服务器上获取数据,post是向服务器传送数据; get安全性非常低,数据显示在地址栏,post安全性较高: 但是执行效率却比Post方法好: get有字节限制为 ...
- ASP.Net 知识点总结(三)
1.描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答:不是.可以用任意类型. 2.<%# %> 和 <% %> 有什么区别? 答:<%# %>表示绑定 ...
- Asp.NET 知识点总结(二)
1.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的 hash code 编码格式. 2.swtich是否能作用在byte ...
- Asp.NET 知识点总结(一)
1.简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有类,私有成员, 在类的内部才可以访问. protected : ...
- ASP.NET知识点汇总
一 ,html属性20181113常用的居中方法1 text-align2 float3 margin (margin-left matgin-right margin-bottom margin-t ...
- 初学JQuery相关知识点
[简单的JQuery]注册事件的函数. $(document).ready(function(){}) [JQuery提供的函数]$.map(array,fn) 对数组array中每个元素调用fn函数 ...
- ASP.NET 知识点总结(七)
1.new修饰符是起什么作用new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员.而new 操作符用于实例化一个类型new 修饰符只能用于继承类,一般用于弥补基类设计的不足new 修饰符和 ...
随机推荐
- SQL进阶随笔--case用法(一)
SQL进阶一整个是根据我看了pdf版本的整理以及自己的见解整理.后期也方便我自己查看和复习. CASE 表达式 CASE 表达式是从 SQL-92 标准开始被引入的.可能因为它是相对较新的技术,所以尽 ...
- Nginx CONTENT阶段 autoindex、index模块
L 66 autoindex 指令 syntax : on | off; default : off; context : http,server,location; autoindex_exact_ ...
- subprocess
在没有subprocess这个模块的时候,我们怎么去跟我们的操作系统做交互的呐?下面我们先说说这三个模块:os.system().os.popen().commands. 1. os.system( ...
- react native 封装TextInput组件
上一篇 react-native文章提到了TextInput组件对安卓的适配问题,因此对该组件进行封装很有必要. 文章地址 react native定报预披项目知识点总结 TextInput介绍 官 ...
- CF集萃2
CF1155D - Beautiful Array 题意:给你一个序列和x,你可以选择任意一个子串(可以为空)乘上x,使得得到的序列最大子串和最大.求这个最大值.30w,2s. 解:设fi,0/1/2 ...
- windows类似grep的命令——findstr
windows类似grep的命令——findstr 使用Chrome发现访问google总是向香港那边跳转,估计配置文件中google网站映射的地址是www.google.com.hk,便想着改配 ...
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
- Google Protocol Buffer项目无法加载解决方案
http://blog.csdn.net/suixiangzhe/article/details/52171313 今天下载Google Protocol Buffer源码研究时发现打开工程后所有项目 ...
- sql连接查询中的分类
sql连接查询中的分类 1.内连接(结果不保留表中未对应的数据) 1.1等值连接:关联条件的运算符是用等号来连接的. 1.2不等值连接:连接条件是出等号之外的操作符 1.3自然连接:特殊的等值连接,在 ...
- jmeter中的参数化
1.那些场景需要参数化? 1.登陆认证信息 2.一些和时间相关的,违反时间约束的[时间点和当前时间不一致的情况等等] 3.一些受其他字段约束的[例如字段的一些限制条件] 4.一些来自于其他数据源[例如 ...