1、响应在此上下文中不可用(Response)。

异常:响应在此上下文中不可用
产生异常的过程:在asp.net程序中添加了一个 类.cs ,其中有一段代码如下 :
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray()); 
出现如上所说的异常。
      查阅资料后得知,原因是b.aspx页面没有经过asp.net初始化,所以其中的Response没有关联HttpContext。  一般Page实例都不应该由用户创建。ASP.NET创建Page后,会调用它的一个内部的方法ProcessRequest并且把HttpContext传进去的。没有那一步,所以不行。
解决方法:Response改用System.Web.HttpContext.Current.Response,修改后正常。
 
2、添加地图热点
  实质是把一幅图片划分为不同的热点区域,再让不同的区域进行超链接。
  主要用到三种标签:<img><map><area>。     
     <img src="图片Url地址" usemap="#图的名称">     
     <map name="图的名称">      
         <area shape="形状" coords="区域座标列表" href="URL">        <!--可根据需要定义多个热点区域-->       
     </map>

  (1)shape 定义热点形状: rect (矩形);  circle(圆形);  poly(多边形)

  (2)coords 定义区域点的坐标:

  a.矩形:必须使用四个数字,前两个数字为左上角座标,后两个数字为右下角座标         例:<area shape=rect coords=100,50,200,100 href="URL">

  b.圆形:必须使用三个数字,前两个数字为圆心的座标,最后一个数字为半径长度         例:<area shape=circle coords=100,100,50 href="URL">

  c.任意图形(多边形):将图形之每一转折点座标依序填入         例:<area shape=poly coords="123,455,653,455,121,..." href="URL">

  实例代码:(注:onfocus="this.blur()"  ------去掉虚线框)

<img src="data:images/NewImages/default.jpg" alt="" style="width:100%; height:100%;" usemap="#default" />
<map name="default" id="default">
<area shape="rect" coords="370,240,480,290" href="http://www.baidu.com" alt="质量安全检测" onfocus="this.blur()" />
<area shape="rect" coords="570,240,685,290" href="http://www.baidu.com" alt="安全风险分析" onfocus="this.blur()" />
<area shape="rect" coords="775,240,885,290" href="http://www.baidu.com" alt="生产追溯" onfocus="this.blur()" />
</map>

3、字符中的字符文本太多

出错位置:"<%=Session['UserName']%>"    正确形式应为:'<%=Session["UserName"]%>'

根源:单引号在程序中代表char类型,JS嵌入的类似session['UserName']的代码,实际上还是在后台执行的C#代码,在C#中单引号代表的是字符型,而不是字符串型,但我们为了适应JS代码把原来的字会串型不知不觉中错误地放入了字符型中。

为避免此类问题:html中的超链接中比如有多层嵌套,很容易产生导致字符串被截取,字符文本中字符太多,等等等等很多问题

解决方案:引号嵌套两层时,可使用转义或单双引号交替形式实现(先单后双);当嵌套三四层时:"javascript:fnabc('nihao("123")')",html的href=以上的字符串,那么即使加了转义字符,字符串还是被截取为:"javascript:fnabc('nihao("  :此时应使用  &quot;  代替引号:"javascript:fnabc('nihao(&quot;123&quot;')"。

4、从客户端(...)中检测到有潜在危险的Request.Form 值

原因:该值可能指示存在危及应用程序安全的尝试,如跨站点脚本攻击。若要允许页面重写应用程序请求验证设置;出现这个问题,一般是由于.Net Framework 使用了4.0版本造成的。(从 .Net Framework 4.0 开始,ASP.NET开始强制检测Request参数安全),而我们可以通过修改 Web.config 来恢复 2.0 版本的模式。

解决方案:

[1]、asp.net项目

(1).第一步:请在Web.config中的 httpRuntime 配置节中的system.web下添加 <httpRuntime requestValidationMode="2.0" />节点;

第二步:在在.aspx文件头中加入这句: <%@ Page validateRequest="false"  %>。

(2).修改web.config文件: <configuration> 下的 <system.web>修改 <pages validateRequest="false" /> 。

[2]、MVC项目:在Controller对应的提交的action上面加上[ValidateInput(false)] 。

5、小数字符串转为整型字符串

例如:string  str = "1314.1314";   不可直接  str = Convert.ToInt32(str).ToString();  报错:输入的字符串格式不正确。

正确转法: str = ((int)Convert.ToDecimal(str)).ToString();

6、后台使用百分比

ItemStyle.Width = Unit.Percentage(4);    //相当于前台 Width = "4%"
ItemStyle.Width = Unit.Percentage(96);

7、asp.net, B/S模式下在类中使用Console.Write()

今天在学习C#的格式字符串,asp.net, B/S模式下在类中使用了该代码没用报错,但是页面上并不能输出相应的字符。

double d= 13.45;
int i = 45;
Console.Write("The double is {0} and the int contains {1}",d,i);

我知道在页面要输出字符串的话要用Response.Write(),那么是不是把Console.Write("The double is {0} and the int contains {1}",d,i); 改成 Response.Write("The double is {0} and the int contains {1}",d,i),感觉好像行。但是敲完这段代码一条小红线提示你,改方法错误,不能通过编译。很显然Response.Write()并没有相应的参数。

查了一下资料只要多加一句代码就可用使用Console.Write() ;代码如下:

double d= 13.45;
int i = 45;
Console.SetOut(Response.Output);
Console.Write("The double is {0} and the int contains {1}",d,i);

当然用Response.Write()也一样可以,其实Console.Write()方法只是把参数的完整列表传送给静态方法string.Format()。

Response.Write(string.Format("The double is {0} and the int contains {1}",d,i));

8. 在使用了UpdatePanel后,在服务器端无法得到DropDownList的SelectedValue的正确值

问题:FireFox下正常,IE下后台取不到DropDownList的SelectedValue;
解决方案:
问题在于web.config配置了如下的配置项: <system.web>   <globalization requestEncoding="gb2312" responseEncoding="gb2312"/> </system.web> 在把该配置项取消了之后就好了。
 
9. 后台拼接的html控件字符串 FindCotrol 无法找到
原因:FindCotrol 只认服务器控件,后台拼接字符串添加的控件不会被服务器作为对象的  字符串!=对象

C# 之 日常问题积累(一)的更多相关文章

  1. Git 一些日常使用积累

    本来不想写这样的东西的,因为随处谷歌百度都有一大堆!但是,我却总是在百度谷歌,我在想,为什么我不自己写一篇存进来,顺便加深印象呢?既然这样,这篇随笔,就真的变成随笔好了,随时修改,随时添加. Git ...

  2. iOS开发 日常错误积累

    1.ios7 tableviewcell上面加入一个view,view上面有button,点击button不运行button的点击事件 解决的方法: self.view.userInteraction ...

  3. git日常使用经验积累

    1 git merge origin/develop 将远程分支合并到本地,一般先执行合并,解决冲突,然后再git commit合入新建的分支,推送到远程分支里面,最后码云上找pl pull requ ...

  4. java日常知识点积累

    java类型中的普通非static方法 示例代码: package com.lvzhi; /** * Created by lvzhi on 2017/9/3 */ public class MyTh ...

  5. C# 之 日常问题积累

    https://www.cnblogs.com/xinaixia/p/3956349.html

  6. App开发流程之加密工具类

    科技优家 2016-09-08 18:10 从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累. 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长.如果在专注功能开发过程中,才发现缺少 ...

  7. 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

  8. 如何准备阿里社招面试,顺谈 Java 程序员学习中各阶段的建议

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

  9. 阿里面试回来,想和Java程序员谈一谈(转载)

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

随机推荐

  1. 修改Linux主机名与IP之间的映射关系

    linux主机版本: Distributor ID: UbuntuDescription: Ubuntu 14.10Release: 14.10 一.修改linux主机名 1.使用hostname命令 ...

  2. python 基础 three day

    本节主要内容: 一. python基本数据类型有哪些? 1. int  ==>  整数.主要用来进行数学计算. 2. str ==> 字符串,可以保存少量数据并进行相应的操作 3. boo ...

  3. 【进阶2-3期】JavaScript深入之闭包面试题解

    这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://github.com/yygmind/blog/issues/19 作用域指的是一个变量和函数的作用范围,JS中函数内声明的所有变 ...

  4. 【MySql】Order By 排序

    你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果. 你可以设定多个字段来排序. 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列. 默认情况下,它是按升序排列. 你 ...

  5. centos 7.3 设置静态IP

    注:本文来源:张亮博客  的 <centos 7.3 设置静态IP或ping 报name or service not known> 首先把虚拟机配置为桥接模式,然后开启再你打算修改虚拟机 ...

  6. Confluence 6 启用和禁用 Office 连接器

    如果你希望限制访问 Office 连接器的所有组件或者部分组件,你可以禁用整个插件也可以禁用插件中的某个模块. 希望启用或禁用 Office 连接器模块: 进入  > 基本配置(General ...

  7. Confluence 6 修改特定的空间标识图片

    空间管理员可以为他们管理的空间修改空间标识图片.这个修改将会覆盖默认的空间标识图片,任何对默认空间图标表示的修改将不会对已经修改的空间标识图片产生影响.请查看上面的例子中的 'Sample Space ...

  8. python之+=与+(转载)

    先看一个简单的例子 从程序分析,进行直接+操作后,python会重新生成一个对象,而进行+=操作并不改变原来的对象,是在原来对象的基础上进行操作,所以+=也称为就地加 除此之外+和+=还有不同: 从程 ...

  9. 手机端rem 用法

    !function(n){ var e=n.document, t=e.documentElement, i=720, d=i/100, o="orientationchange" ...

  10. django 之知识点总结以及Form组件

    一.model常用操作 1.13个API查询:all,filter,get ,values,values_list,distinct,order_by ,reverse , exclude(排除),c ...