asp.net中输入文本的html解析办法

ASP.NET 中的文本块功能解析 本文介绍了C#中实现多行字符串的多种解决方案:1)使用@符号的逐字字符串,保留所有格式但需转义引号;2)ASP.NET Razor视图原生支持多行HTML;3)C# 11新增的原始字符串字面量("""),支持自动缩进和无转义引号。通过对比表格分析了不同方案的特点和适用场景,建议现代项目优先使用原始字符串字面量,传统项目可选用逐字字符串或Razor视图,并提供了JSON、SQL等实际应用示例。文中还比较了C#与Java文本块的功能差异,为开发者提供了清晰的技术选型参考。 阅读详情

  网页中用textbox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为textbox实际上是一个windows组件,和网页显示标记如:<p>,<td>,<div>等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“<br>”。这就带来一个转换的问题。

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

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

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

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

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

  第一步:


   “<”      à“<”
  “&”      à“&”

  “ ”à“&nbsp;”

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


  第二步:


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


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

  用户输入:a b   c d

  第二步转换:a b   c d

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

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

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

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


   //这里假设temp是从数据库中读出来的,这里演示table和htmltable其他的控件类似
  //显示的效果是:<a b

  //table1是web控件

  string temp = “<a 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;那么显示的效果将会变成:<a b

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

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

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

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


   //“/r/n”在textbox中硬回车的时候会自动添上
  string temp = “a b   c d/r/ne<”;

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

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

  temp = server.htmlencode(temp);

  temp = temp.replace(" "," ");

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

  table1.rows[0].cells[0].text = temp;

  table2.rows[0].cells[0].innerhtml = temp;

  //显示效果:a b   c d

  //        e<
 

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

  大功告成:)

 

在ASP.NET实现文本框数字输入限制的完整指南 尽管内置验证控件非常强大,但有时候我们需要编写自定义验证逻辑来满足特定的业务需求。我们可以通过实现 IValidator 接口来创建自己的验证器。同时,可以编写服务器端的验证逻辑,根据需要对输入数据进行复杂处理,并通过在验证失败时抛出异常来通知用户。在后续的章节中,我们将深入探讨其他技术,比如JavaScript数字输入限制、正则表达式验证、负数和小数位数控制,以及它们与用户体验和安全性相关的方方面面。这将为我们提供一个全面的视角,理解如何构建既安全又高效的输入验证机制。 阅读详情

相关推荐

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

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

网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:,,等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“”。这就带来一个转换的问题。在做转换之前,先来考虑几个问题:  1、 TextBox用“/r/n”来标记换行而网页中以“”标记  2

724

矩形口径喇叭天线设计——参数设置

我们建立好矩形口径喇叭天线的模型后(模型建立可参考B站相关视频或者李明洋的《HFSS天线设计》),如何修改参数达到我们的指标呢?

m0_57263863的博客 1万+

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

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 223

混合开关电容DCDC变换器技术解析与工程应用指南

在电源设计领域,传统DCDC变换器在高降压比或高升压比场景下,往往面临占空比过窄、开关应力大、效率偏低等瓶颈。开关电容变换器虽能实现固定比例的电压变换,却受限于调节能力。混合开关电容DCDC变换器通过“开关电容网络粗调变比+电感式DCDC细调输出”的策略,兼顾高效率、高功率密度与宽调压范围。本文梳理了其典型拓扑(如2:1/4:1 SC+Buck)、关键对比、控制策略(含软充电)及工程应用中的常见问题,帮助电源工程师在服务器供电、快充、车载电源等场景下快速选型与调试。

weixin_29164185的博客 316

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

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

weixin_29959549的博客 274

别再纠结高侧低侧了!用INA199/INA219这类集成电流检测芯片,5分钟搞定精准电流测量

本文详细解析了使用INA199/INA219等集成电流检测芯片实现精准电流测量的高效方案。通过对比传统分立元件方案,突出集成芯片在精度、温度稳定性和设计简化方面的优势,并提供硬件设计避坑指南和软件实现最佳实践,帮助开发者快速掌握电流检测技术。

weixin_42685438的博客 472

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

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

编程记录,亲测有效 3892

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型

一、本文介绍 本文记录的是基于 GhostNetV3 的 YOLOv11 轻量化改进方法研究。GhostNetV3的轻量模块采用重参数化方法,训练时为深度可分离卷积和1×1卷积添加线性并行分支,推理时通过逆重参数化移除分支、折叠操作,能够在不增加推理成本的同时提高性能,从而实现YOLOv11的轻量化改进。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进 专栏地址:YOLOv11改进专栏——以发表论文的角度,快速

Limiiiing的博客 1846

RK3568平台开发系列讲解(NPU篇)什么是RKNPU

📢本篇章将介绍RKNPU。

内核笔记 4359

ASP.NET中用户输入文本的HTML解析办法

ASP.NET中用户输入文本的HTML解析办法   网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:,,等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“”。这就带来一个转换的问题。    在做转换之前,先来考虑几个问题:1、 Tex

zhlmmc的专栏 1255

4、基于STM32 NUCLEO - F030R8开发板的嵌入式编程入门

本文详细介绍了如何在STM32 NUCLEO-F030R8开发板上实现LED闪烁功能,作为嵌入式编程的入门实践。内容涵盖开发板组成、跳线设置、项目创建、代码编写与解析、编译运行步骤,以及常见问题解决方法和拓展应用。通过本文学,习者可以掌握嵌入式开发的基本流程,并为后续深入学习打下基础。

m9n0o的博客 85

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

网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:,,等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“”。这就带来一个转换的问题。  在做转换之前,先来考虑几个问题:  1、 TextBox用“/r/n”来标记换行而网页中以“”标记 

jiefangchen的专栏 483

ENVI预处理GF-1号WFV1遥感数据提取NDVI指数

使用ENVI处理GF-1号遥感数据提取NDVI指数

所有专家都曾始于新手 8180

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

weixin_32808853的博客 282

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ASP.NET中用户输入文本的HTML解析办法(转载)

网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:,,等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“”。这就带来一个转换的问题。     在做转换之前,先来考虑几个问题:1、 TextBox用“/r/n”来标记换行而网页中以“”标记

.net 学习专栏 1681

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ASP.NET中用户输入文本的HTML解析办法[转]

网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:,,等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“”。这就带来一个转换的问题。             在做转换之前,先来考虑几个问题:             1、 TextBox用“

Midweek的专栏 345

ASP.NET Web Forms - HTML 页面

简单的 ASP.NET 页面看上去就像普通的 HTML 页面。

zheng998的博客 2539

ASP.NET - ASP.NET 网页的 HTML 控件

      本节中的主题描述如何使用 Visual Web Developer 工具箱的“HTML”选项卡上的 ASP.NET Web 服务器控件。 默认情况下,服务器无法使用 ASP.NET 网页上的 HTML 元素;这些元素被视为传递给浏览器的不透明文本。但是,通过将 HTML 元素转换成 HTML 服务器控件,可以将它们公开为可以在基于服务器的代码中进行编程的元素。 一、HT

dodream的专栏 1300

asp.net 显示html文本

====================================================== 注:本文源代码点此下载 ====================================================== asp.net 显示html文本 有段html文本存在了数据库,取出后放在变量description, 例如 testxxx ,如果要显示在

javazhuanzai的专栏 634

ASP.NET MVC - HTML 帮助器

HTML 帮助器用于修改 HTML 输出。

zheng998的博客 911
上一篇: 中式vc变形记
下一篇: asp互动视频教程:asp是什么?
Labber
博客等级 码龄19年 26粉丝 1976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值