asp.net – 如何从服务器控件中删除’name’属性?
发布时间:2020-12-16 09:27:00 所属栏目:asp.Net 来源:网络整理
导读:以下asp.net端控制代码: asp:TextBox runat="server" ID="LimitTextBox" Text="20" ClientIDMode="Static" / 生成这样的HTML代码: input name="ctl11$ctl00$ctl02$TeamPlayerSelector$LimitTextBox" type="text" value="20" id="LimitTextBox" ID属性 –
以下asp.net端控制代码:
<asp:TextBox runat="server" ID="LimitTextBox" Text="20" ClientIDMode="Static" /> 生成这样的HTML代码: <input name="ctl11$ctl00$ctl02$TeamPlayerSelector$LimitTextBox" type="text" value="20" id="LimitTextBox"> ID属性 – 根据需要,但如何删除’name’属性?这对我来说并不是必需的,也不会将其转移到用户浏览器. 如何防止“名称”属性生成?谢谢 附:我在ASP.NET 4.0下工作 解决方法
创建一个Filter(继承自Stream的类),将其分配给您的HttpContext.Response.Filter属性,然后在其中覆盖Write方法,从生成的html中删除所有名称标签:)
有关更多信息,请参见此页面http://msdn.microsoft.com/en-us/library/system.web.httpresponse.filter.aspx 更新 查看TextBox的源代码,它显示Name在渲染过程中实际上已添加到Attributes-list中,因此应该可以干扰TextBox类的呈现并阻止添加此属性.这应该做 public class NoNamesTextBox : TextBox { private class NoNamesHtmlTextWriter : HtmlTextWriter { public NoNamesHtmlTextWriter(TextWriter writer) : base(writer) {} public override void WriteAttribute(string name,string value,bool fEncode) { if (name.Equals("name",StringComparison.OrdinalIgnoreCase)) return; base.WriteAttribute(name,value,fEncode); } } protected override void Render(HtmlTextWriter writer) { var noNamesWriter = new NoNamesHtmlTextWriter(writer); base.Render(noNamesWriter); } } 再次更新 我怎么会忘记!您甚至不需要对文本框进行子类化.在asp.net中,您可以定义每个控件要使用的HtmlTextWriter类型,因此您可以配置每个TextBox控件应该使用您自己的NoNamesHtmlTextWriter实例,如下所示 <browsers> <browser refID="Default"> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.TextBox" adapterType="NoNamesTextBoxAdapter" /> </controlAdapters> </browser> </browsers> public class NoNamesTextBoxAdapter : ControlAdapter { private class NoNamesHtmlTextWriter : HtmlTextWriter { public NoNamesHtmlTextWriter(TextWriter writer) : base(writer) { } public override void WriteAttribute(string name,fEncode); } } protected override void Render(HtmlTextWriter writer) { var noNamesRender = new HtmlTextWriter(writer); base.Render(noNamesRender); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在ASP.net中获取页面中的主页?
- asp.net-mvc – 在视图中格式化小数
- asp.net – 如何将转发器绑定到列表以更新绑定的项目? (2种
- asp.net-mvc – 为什么@Using Html.BeginForm中的普通标记需
- 使用ASP.net刷新/重新加载副作用?
- asp.net – 如何在Azure共享主机中启动Hangfire(“永远在线
- asp.net-mvc-4 – Resharper无法解析主页中的部分视图
- asp.net – 当modal设置为TRUE时,jQuery UI对话框出现问题
- Asp.net MVC使用EasyNetQ操作RabbitMQ
- asp.net – 如何从水晶报表中的组字段中删除组名