ASP.NET中输入文本的HTML解析办法(pconline)

Gromacs分子动力学全流程实战:从对接到自由能分析 分子动力学模拟是理解蛋白质-配体相互作用的核心技术,其本质是基于牛顿力学与统计物理的原子级轨迹演化过程。Gromacs作为高性能开源MD引擎,需严格遵循预处理、溶剂化、离子中和、热力学平衡与生产模拟的递进逻辑,每阶段均受力场一致性、周期性边界条件及系综选择等物理原理约束。关键技术价值在于提供构象稳定性(RMSD/RMSF)、动态氢键网络、结合口袋形变及端到端结合自由能等可解释性指标,广泛应用于药物发现中的靶标验证、先导化合物优化与耐药机制解析。本文以EGFR-厄洛替尼体系为范例,覆盖PDB清洗、GAFF/C 阅读详情
网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:<p>,<td>,<div>等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“<br>”。这就带来一个转换的问题。

在做转换之前,先来考虑几个问题:

  1、 TextBox用“/r/n”来标记换行而网页中以“<br>”标记

  2、 网页中连续的空格当做一个空格处理,比如“a b    c”将会显示“a b c”

  3、 用户输入特殊字符比如:“<”,“&”,“&nbsp;”,“&lt;”,这些都是网页中有特殊意义的字符,会被解析,而用户输入的目的当然是不希望被解析。

  现在来解决这几个问题,有一种解决办法是在显示的时候仍然用TextBox去显示,这样就不用做任何转换,只要把TextBox.ReadOnly设为true,这样在一定程度上能满足要求。但是往往为了网页的美观,这样做是不可取的。比较好的办法是去解析用户输入的字符串,可以做这样的转换:

  第一步:


  “<”      à“&lt;”

  “&”      à“&amp;”

  “&nbsp;”à“&amp;nbsp;”

  ……(此处的省略号后文有说明)

  第二步:


  “ ”      à“&nbsp;”

  “/r/n”  à“<br>”

  这里必须分两步转换,因为如果你先做第二步转换的话混把用户输入的特殊字符串和由转换而的的特殊字符串混淆,比如:

  用户输入:a b   c&nbsp;d

  第二步转换:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d

  第一步转换:a&amp;nbsp;b&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;d

  可以看到,经过第一次转换后已经无法分辨用户输入的“&nbsp;”和转换而来的“&nbsp;”,在做第二次转换的时候就会统一处理就会出错。结果显示:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d

  如果严格按照第一步,第二步的转换顺序来转换就不会出现这个问题。

  把转换后的字符串存入数据库,在显示的时候直接把从数据库读出的字符串给HTML组件赋值,比如:


  //这里假设temp是从数据库中读出来的,这里演示Table和HtmlTable其他的控件类似

  //显示的效果是:<a b

  //Table1是Web控件

  String temp = “&lt;a&nbsp;b”;

  Table1.Rows[0].Cells[0].Text = temp;

  //Table2是HTML控件

  Table2.Rows[0].Cells[0].InnerHtml = temp;

 HtmlTable有两个相似的属性“InnerHtml”,“InnerText”,介绍一下这两个属性的区别:

  InnerHtml:显示的时候会对传入的值进行HTML解析,就像上面的例子。

  InnerText:显示的时候不会对传入的值新型解析,直接把传入的值显示出来。比如把上面的例子改成:Table2.Rows[0].Cells[0].InnerText = temp;那么显示的效果将会变成:&lt;a&nbsp;b

  虽然这两个属性用起来很方便,似乎可以满足平时的使用需求,但是InnerText有两个问题:

  1、 无法标记换行,不管是“/r/n”还是“<br>”都不是换行标记

  2、 连续的空格仍然只显示一个空格。

  所以想不转换字符串而直接用InnerText是不可取的。但是转换是个非常繁琐的过程,因为HTML的特殊标记非常多。值得庆幸的是ASP.NET提供了HttpServerUtil类,该类提供了HtmlEncode()和HtmlDecode()方法,这里我们只用到HtmlEncode()方法。我们就可以这样来转换:


  //“/r/n”在TextBox中硬回车的时候会自动添上

  string temp = “a b   c&nbsp;d/r/ne<”;

  //Server是Page类的一个属性,也就是说任何aspx页面的codebehind中都是可以使用的

  //因为aspx页面都是继承Page类的。

  temp = Server.HtmlEncode(temp);

  temp = temp.Replace(" ","&nbsp;");

  temp = temp.Replace("/r/n","<br>");

  Table1.Rows[0].Cells[0].Text = temp;

  Table2.Rows[0].Cells[0].InnerHtml = temp;

  //显示效果:a b   c&nbsp;d

  //        e<


  到这里你也许会想一个问题,万一用户输入“/r/n”怎么办?不用担心,网页组件的设计者已经考虑到了这个问题,因为用户输入的“/r/n”会被自动转换成“//r//n”(当然在我们做转换之前)。

 


ASP.NET技巧:请求网址并解析返回的html 目的,把远程服务器传回的Html,解析到类里面,为GridView等提供数据源  1 、向远程服务器Post数据public int PostData(string url, string data, out string info)        {            info = “”;            CookieContainer cc = new CookieContainer();            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;            request 立即下载

相关推荐

无需Root!用VirtualXposed+JustTrustMe在安卓高版本上抓包拼多多API数据

本文详细介绍了在安卓高版本设备上无需Root权限即可抓取拼多多API数据的完整方案,通过VirtualXposed与JustTrustMe组合技术,有效绕过SSL Pinning限制。文章涵盖工具准备、环境配置、应用处理及实战分析,特别针对PDD应用的混合通信策略提供了专业解决方案,适合开发者进行竞品分析和数据采集。

weixin_28678151的博客 453

Asp.Net实现多行文本,正则表达式验证和禁用页面回车键后多行文本无法换行问题...

一 Asp.Net实现多行文本,正则表达式验证&lt;asp:TextBox ID="txtDescription" runat="server" Height="82px" MaxLength="500" TextMode="MultiLine"                      Width="501px"&gt;&lt;/asp:TextBox&

Tankywang的专栏 269

MRI图像切片(nii格式转2D)

代码参考:将一个MRI(nii格式)数据进行切片 想要批量抽取MRI数据的几个切片,借鉴了上述代码的Python版本,原始代码抽取了全部切片。本次实验主要是抽取sMRI的横断面(axial)方向的其中30张切片,数量根据自己需求可自行设置。 import scipy, numpy, shutil, os, nibabel import sys, getopt import imageio def niito2D(filepath): inputfiles = os.listdir(filep

chs_502的博客 7549

asp html文本转化,如何获得ASP文本框的值转换成HTML input标签

你想做什么不是很清楚,所以我会提供2个选项。而asp:TextBox和input type="text"在HTML中是一样的。查看页面源代码并亲自查看。首先使用OnTextChanged事件将值从AddressTextBox改为txtAutocomplete。为了这个工作,你将不得不使txtAutocomplete一个aspnet文本框。然后在后面的代码protected void fillAdd...

weixin_29959549的博客 274

测试dali协议的软件,DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议

DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议深圳聚积智能 夏先生 13246760327 QQ 349098308■IEC62386-102(V2.0)通过测试内容IEC62386-102/2.1/Test preambleIEC62386-102/3.1/Polarity testIEC62386-102/3.2/Maximum and minimum system v...

weixin_35343788的博客 1351

物联网开发笔记(34)- 使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

zhusongziye的博客 1万+

整理了一些t-sql技巧

一、 只复制一个表结构,不复制数据 select top 0 * into [t1] from [t2]二、 获取数据库中某个对象的创建脚本1、 先用下面的脚本创建一个函数if exists(select 1 from sysobjects where id=object_id(fgetscript) and objectproperty(id,IsInlin

kingwkb的专栏 1757

Starlink第三代终端和第二代终端的差异性有哪些?

starlink第三代终端和第二代终端的额差异

chen2jiang3的博客 2924

【CSS】隐藏多行文本框Textarea在IE中的垂直滚动条

在《【CSS】禁止Google浏览器允许定义调整多行文本框》(点击打开链接)中已经提及过如何使多行文本框Textarea在一些DOM2的浏览器中固定下来。 这不,多行文本框Textarea在IE中也存在一些样式上的缺陷了。 一个普通的,没有加任何定义的文本框,如下: 其在IE的效果就如同左侧一样,在没有输入任何文字,就出现垂直滚动条很不雅观,尤其是在一些不打算给用户输入过多文本的情况下

编程记录,亲测有效 3892

COMSOL有限元仿真深度指南:为结构件添加预应变

一、什么是预应力和预应变? 我们知道,结构力学问题中,结构件在外载荷作用下产生变形响应以吸收外载荷做功带来的能量;而在结构内部,整体的受力和变形则是通过固体微元的应力与应变传递的。 对于线弹性材料来说,应力与应变的关系可以线性表达,也即 σ=Dεσ = Dεσ=Dε ;在该式中,无论固体微元的应变程度多大,弹性矩阵DDD都是一个不变的常值。而对于超弹性材料来说,应力与应变的关系则需要通过应变能密度函数WWW来表征(详细参加博客《COMSOL有限元仿真深度指南:超弹性模型有限元分析入门》)。 从上面我们也不难

忘了面孔的Batou 7170

【微服务】Spring Aop原理深入解析

spring原理深度解析

congge 1万+

asp.net解析html,,Asp.Net HTML 解析类库

1、HtmlAgilityPackHtmlAgilityPack是.net下的一个HTML解析类库。支持用XPath来解析HTML。这个意义不小,为什么呢?因为对于页面上的元素的xpath某些强大的浏览器能够直接获取得到,并不需要手动写。节约了大半写正则表达式的时间,当然正则表达式有时候在进一步获取的时候还需要写,但是通过xpath解析之后,正则表达式已经要匹配的范围已经非常小了。而且,不用正则表...

weixin_29584723的博客 500

使用 ABAP Development Tool 登录 SAP BTP ABAP 环境时,遇到弹出框应该怎么办?

但在实际环境里,隐私模式、第三方 Cookie 禁止、跨站追踪限制、缓存代理误命中、混合内容拦截等因素,都可能让这条跳转链路被打断。等),浏览器会弹出系统原生登录框,请求用户输入账号和口令或做集成认证。只要它们在响应头里出现,浏览器就会理直气壮地弹框,这是协议层的强约定。,最终弹出原生登录框。前端与网关领域有个通用的经验规则:如果你看到了原生登录框,而期望的是带样式的。环境里的登录方式表述为基于浏览器的前端认证,也就是这类重定向式的交互。环境的具体落地,拆出几类常见诱因与排障路径,并穿插真实世界的案例。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 369

asp.net过滤html,Asp.Net中过滤所有的Html标签

今天在制作一个显示文章列表的页面,从数据库中读出文章标题及部分内容显示到页面上,可以让读者在列表中就可以了解到该文章的大概。完成后却发现了一个问题,就是在翻页后有些页面显示的不完整了,或者页面布局全变乱了,但有几页却没有。查看有问题页面的源代码,发现原来是因为文章内容中包含了HTML代码,然后我在读取部分内容的时候就简单的在数据库中用了left函数,所以导致读出了未封闭的HTML标签了,显示到页面...

weixin_39636253的博客 300

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

asp中如何输入html,ASP.NET中输入文本的HTML解析办法

HtmlTable有两个相似的属性“InnerHtml”,“InnerText”,介绍一下这两个属性的区别:InnerHtml:显示的时候会对传入的值进行HTML解析,就像上面的例子。InnerText:显示的时候不会对传入的值新型解析,直接把传入的值显示出来。比如把上面的例子改成:Table2.Rows[0].Cells[0].InnerText = temp;那么显示的效果将会变成:<a...

weixin_32808853的博客 282

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

asp.net 读取mysql_asp.net读取数据库

有的网友说,不会C#,在ASP.NET里面还是选择VB.NET,这个我不反对,但是我觉得既然是学习新的东西,就不要在意有多少是新的。实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插就可以显示了,但是ASP.NET讲究的是代码分离,如果还是这样显示数据就不能代码分离了。所以我...

weixin_42511602的博客 361

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

asp.net 解析html,ASP.NET技巧:请求网址并解析返回的html

目的,把远程服务器传回的html,解析到类里面,为gridview等提供数据源1 、向远程服务器post数据public int postdata(string url, string data, out string info){info = "";cookiecontainer cc = new cookiecontainer();httpwebrequest request = webreq...

weixin_36376879的博客 507

ASP.NET中控件的innerHTML与innerText属性一些笔记

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34334744的博客 1088

ASP.NET中多行文本框

   

紫藤阁 7840

innerText换行

容器里有,则innerText的值有换行,换行符为/n

ikmb的专栏 6710

如何让在Html中特殊字符不被转义(源码输出)

如何使HTML标签原样显示出来 方法一: 将HTML代码嵌入到<script type='text/html' style='display:block'></scipt>中 <script type='text/html' style='display:block'> <input type="text" /> </scipt> 示例...

cnmeimei的博客 3257

ASP.NET WEB网站简单入门(简单Demo ->发布)

简单分几个阶段 一、简单代码实现 1.新建工程 2.打开设计器(查看设计器),托出一个label ,写上Hello 3.点击调试,即可看到网页效果 4.重新生成后,发布到指定路径下 5.弹出网站发布设置面板,点击&amp;lt;新建..&amp;gt;,创建新的发布配置文件: 6.输入你自己定义的配置文件名: 7.点击下一步:在发布方法中选“文件系统”,这样我们可以发布到自...

black_yu的博客 6万+
上一篇: IE“图片另存为”功能存在安全漏洞 SP2亦包括在内
下一篇: asp.net网站的载入界面的做法
aa2004
博客等级 码龄23年 0粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值