错误如下图:

当我们在写web程序的时候,有时候避免不了要再后台弹出一个提示框,在winform中我们可以用MssageBox() 类来实现,在web开发中,我们只能借助于javascript来实现了

.net中为我们提供了这样一个类ScriptManager来帮助我们解决这样的问题,而有些时候我们却在使用的时候容易出现这样一个错误,”当前上下文不存在 ScriptManager ” ,这就很郁闷了,差资料显示 ScriptManager 类存在于 System.Web.UI 命名空间中,这时我们在类的头部添加引用,using System.Web.UI;或者是继承 System.Web.UI.Page 这样还是不行,郁闷了,查资料,显示  System.Web.UI类存在于 程序集:  System.Web.Extensions(在 System.Web.Extensions.dll 中),这时,有人会在类头部这样写,Using System.Web.Extensions; 这样是不行的,我们必须在项目中,添加引用,

示例如下图:

第二步:

msdn论坛:http://msdn.microsoft.com/zh-cn/library/system.web.ui.scriptmanager%28v=vs.100%29.aspx点击打开链接

示例类如下:类PageUtil

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;namespace shouqiang_Wei{public class PageUtil:System.Web.UI.Page{#region 截取字符长度/// <summary>/// 截取字符长度/// </summary>/// <param name="inputString">字符</param>/// <param name="len">长度</param>/// <returns></returns>public static string CutString(string inputString, int len){if (string.IsNullOrEmpty(inputString))return "";inputString = DropHTML(inputString);ASCIIEncoding ascii = new ASCIIEncoding();int tempLen = 0;string tempString = "";byte[] s = ascii.GetBytes(inputString);for (int i = 0; i < s.Length; i++){if ((int)s[i] == 63){tempLen += 2;}else{tempLen += 1;}try{tempString += inputString.Substring(i, 1);}catch{break;}if (tempLen > len)break;}//如果截过则加上半个省略号 byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);if (mybyte.Length > len)tempString += "…";return tempString;}#endregion#region 清除HTML标记public static string DropHTML(string Htmlstring){if (string.IsNullOrEmpty(Htmlstring)) return "";//删除脚本  Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);//删除HTML  Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);Htmlstring.Replace("<", "");Htmlstring.Replace(">", "");Htmlstring.Replace("\r\n", "");Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();return Htmlstring;}#endregion/// <summary>/// 在web页面上显示一个对话框/// </summary>/// <param name="page"></param>/// <param name="msg"></param>public static void ShowMsgBox(System.Web.UI.Control page, string msg){string m = HttpUtility.HtmlEncode(msg);ExecJavaScript(page, "alert('" + m + "');");}public static void ShowCfmMsgBox(System.Web.UI.Control page, string msg){string m = HttpUtility.HtmlEncode(msg);ExecJavaScript(page, "confirm('" + m + "');");}/// <summary>/// 显示提示信息并转向新的页面/// </summary>/// <param name="page"></param>/// <param name="msg"></param>/// <param name="newurl"></param>public static void ShowMsgBoxAndRedirect(System.Web.UI.Control page, string msg, string newurl){string m = HttpUtility.HtmlEncode(msg);ExecJavaScript(page, "alert('" + m + "'); window.location='" + newurl + "';");}/// <summary>/// Add by shouqiang Wei 改成 confirm 这样的话就可以返回了...> 不知道能不能行?/// </summary>/// <param name="page"></param>/// <param name="msg"></param>/// <param name="newurl"></param>public static void ShowCfmMsgBoxAndRedirect(System.Web.UI.Control page, string msg, string newurl){string m = HttpUtility.HtmlEncode(msg);ExecJavaScript(page, "if(confirm('" + m + "')) window.location='" + newurl + "' ;");}/// <summary>/// 子框架中转向/// </summary>/// <param name="page"></param>/// <param name="newurl"></param>public static void ParentPageRedirect(System.Web.UI.Control page, string newurl){ExecJavaScript(page, " self.parent.window.location='" + newurl + "';");}/// <summary>/// 在web页面上添加一段javascript/// </summary>/// <param name="page"></param>/// <param name="script"></param>public static void ExecJavaScript(System.Web.UI.Control page, string script){ScriptManager.RegisterStartupScript(page, page.GetType(), "a", script, true);}/// <summary>/// MD5摘要/// </summary>/// <param name="cleanString"></param>/// <returns></returns>public static string Md5Encrypt(string cleanString){Byte[] clearBytes = new UnicodeEncoding().GetBytes(cleanString);Byte[] hashedBytes = ((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(clearBytes);return BitConverter.ToString(hashedBytes);}/// <summary>/// SQL防注入攻击,数据过滤/// </summary>/// <param name="value">要过滤的数据</param>/// <returns>过滤后的数据</returns>public static string SQLFilter(string value){if (String.IsNullOrEmpty(value)) return "";value = value.Trim();value = HttpUtility.HtmlEncode(value);value = value.Replace(" and ", "***");value = value.Replace(" or ", "***");value = value.Replace(" truncate ", "***");value = value.Replace(" from ", "***");value = value.Replace(" select ", "***");value = value.Replace(" insert ", "***");value = value.Replace(" update ", "***");value = value.Replace(" delete ", "***");value = value.Replace(" drop ", "***");value = value.Replace(" count ", "***");value = value.Replace(" exec ", "***");return value;}public static string GetSex(object obj){if (obj == null){return "未知";}try{bool sex = bool.Parse(obj.ToString());if (sex){return "男";}elsereturn "女";}catch (Exception ex){return "未知";}}public static string GetClosedStatus(object obj){if (obj == null){return "未知";}else{try{int n = int.Parse(obj.ToString());if (n == 1){return "关闭";}else if (n == 0)return "开放";elsereturn "未知";}catch (Exception ex){return "未知";}}}public static string SubString(object obj, int length){if (obj == null)return "";string str = obj.ToString();if (str.Length > length)return str.Substring(0, length);return str;}}
}

转载于:https://www.cnblogs.com/wsq724439564/archive/2013/05/12/3258186.html

[置顶] 当前上下文不存在 ScriptManager 的原因分析以及解决方案 (System.Web.Extensions)...相关推荐

  1. 置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天

    置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天 置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天 置顶!!!主页禁言提示原因:在自己论 ...

  2. 错误 1 类型“System.Web.UI.ScriptManager”同时存在于“c:\windows\assembly\GAC_MSIL\System.Web.Extensions\3.5.0.0

    vs.net 2008中建ajax,调试时出现错误: 错误1 类型"System.Web.UI.ScriptManager"同时存在于"c:\windows\assemb ...

  3. [置顶]       VMWare不能安装64位操作系统原因探析

    您已经配置此虚拟机使用64位客户操作系统.然而,64位操作系统不可用.此主机具有虚拟化支持能力的,但虚拟化技术被禁用. 这通常是因为虚拟化技术已经在BIOS /固件设置或禁用或主机没有权限改变此设置. ...

  4. 当前上下文不存在ScriptManager

    写代码的时候遇到ScriptManager报错的问题,我已经引入命名空间using System.Web.UI;,但是依然报"当前上下文不存在ScriptManager".后来找到 ...

  5. Java 使用LinkedList模拟KTV点歌系统,首先先添加若干歌曲,如果歌曲列表中已有该歌曲,则不加入,否则追加。`然后选择列表中的其中一首置顶,最后选择列表中一首歌曲前置一位。

    使用LinkedList模拟KTV点歌系统 该系统的任务是执行3个操作:首先先添加若干歌曲,如果歌曲列表中已有该歌曲,则不加入,否则追加.`然后选择列表中的其中一首置顶,最后选择列表中一首歌曲前置一位 ...

  6. 仿QQ对话列表滑动删除与置顶的原理及实现

    接下来,我们将完成QQ聊天界面的ListView滑动效果,大家可能都用过ListView,知道ListView是上下滑动的,并不会产生左右滑动的效果,如果想让ListView变成左右滑动的效果,必须对 ...

  7. hexo博客文章置顶功能实现的两种方法

    写在前面 本文主要描述了如何实现hexo文章置顶功能,讲述了通过修改源码和通过更改插件两种方式实现,以及如何添加置顶显示.文章可能还有很多不足,请大家谅解,欢迎大佬提意见. 本文使用的东西 win10 ...

  8. 让程序员崩溃的微信群消息置顶

    对于微信群里的消息,你是不是经常选择无视或者已读不回.但最近,微信推出的一个群聊新功能,可能让你再也没法假装看不到了. 6月14日,微信宣布推出群聊消息置顶功能,当天,相关话题冲上热搜第一,引起网友热 ...

  9. Android项目:仿微信聊天的删除,置顶。

    首先我们要重写上下文菜单方法onCreateContextMenu,从这个方法可以添加需要的条目按钮,我们要在res/menu目录下建议个weixin.xml文件: <?xml version= ...

最新文章

  1. excplise tomcat启动过程中类找不到
  2. 云爆发架构是否难以实施?
  3. Vue单文件组件基础模板
  4. JS详细入门教程(上)
  5. 网络报文的数据格式定义和使用
  6. OJ1013: 求两点间距离
  7. java获取上周一_java 获取昨天,上个星期一,本月开始时间戳,怎么写呢?
  8. Inside ASP.NET 2.0-即时编译系统
  9. ./configure:command not found 解决方法
  10. CF1132G Greedy Subsequences
  11. Docker学习总结之docker入门(转自:Vikings翻译)
  12. 基于Python的优化函数可视化
  13. 阿里高级技术专家:研发效能的追求永无止境 1
  14. 蓝牙核心规范(V5.2)7.8-深入详解之SMP(安全管理协议)|LE配对过程(1)
  15. 东芝固态硬盘工具for linux,用东芝笔记本Portege R100下安装Linux的进来参考这篇文章...
  16. 沈阳农业大学计算机专业排名,2019沈阳农业大学专业排名
  17. #7220. 「微课 3.6.2 例 1」亚瑟王
  18. vim 配置及插件安装管理(超级详细)
  19. iPad连android热点掉线,iphone热点总掉线怎么办?苹果手机保持热点不断开的方法...
  20. day.js插件处理日期

热门文章

  1. android 数据库 unique,UNIQUE constraint failed: sqlite database : android
  2. php随机几种图片,关于 PHP 随机图片那个衍生的一个小问题
  3. 三八妇女节html5,三八妇女节活动主题
  4. 旧式台式计算机,浅析老式台式电脑用Win7好还是win10系统好?哪个比较流畅?
  5. C# FileSystemWatcher
  6. 应用程序启动初始化失败 0xc0150002,请点击确定关闭应用程序
  7. FZU 2207 以撒的结合(LCA+记录路径)
  8. Spring Framework 反射型文件下载漏洞(CVE-2020-5421)复现
  9. Ubuntu安装分区方案
  10. TX2入门(3)——ubuntu(包含tx2端)常用命令(持续补充中……)