更改生成的ASP.Net ID?
发布时间:2020-05-23 21:48:59 所属栏目:asp.Net 来源:互联网
导读:在我的ASP.Net页面中 form id=MasterPageForm runat=server 但是,无论何时生成标记,它都会变成 form name=aspnetForm method=post action=SomePage.aspx... id=aspnetForm 是否可以设置生成的表单的HTML ID是什么? 注意:您正在使用“aspnetForm”,
|
在我的ASP.Net页面中 <form id="MasterPageForm" runat="server"> 但是,无论何时生成标记,它都会变成 <form name="aspnetForm" method="post" action="SomePage.aspx..." id="aspnetForm"> 是否可以设置生成的表单的HTML ID是什么? 解决方法注意:您正在使用“aspnetForm”,因为您正在使用母版页.我找到了你的解决方案…… http://forums.asp.net/p/883974/929349.aspx 简而言之,这就是答案来自该链接: 这是该错误的负责代码: public override string UniqueID
{
get
{
if (this.NamingContainer == this.Page)
{
return base.UniqueID;
}
return "aspnetForm";
}
}
如您所见,当命名容器与当前页面不同时(使用母版页时发生的事情),UniqueID属性返回“aspnetForm”.此属性呈现为在表单标记中发送到客户端的name属性.因此,如果您确实需要,可以通过继承htmlform创建自己的表单,然后覆盖UniqueID属性或Name属性(这可能是更好的选择). 自定义HtmlForm类的示例可能是这样的: public class Form : System.Web.UI.HtmlControls.HtmlForm
{
public Form() : base() { }
public override string UniqueID
{
get {
if (this.NamingContainer == this.Page)
{ return base.UniqueID; }
return "f";
}
}
}
注意:您当然可以将表单的名称从“f”更改为其他名称,或者让它读取动态值,例如从web.config文件中读取. 并使用这样的 <%@Register tagprefix="LA" Namespace="Mynamespace"%> ... <LA:form runat="server" id="frm"> ... </LA:form> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – MVC2 Binding不适用于Html.DropDownListFor
- asp.net – 依赖注入和代码可维护性
- asp.net – Live Sitecore网站的Git Source Control策略
- asp.net-mvc-4 – 我似乎没有安装SignalR与MVC4
- asp.net从指定文化获取.resx的所有资源(ResourceManager.Ge
- asp.net-mvc-3 – asp.net mvc的telerik grid的开源替代品?
- asp.net – Isapi过滤器无法在IIS 7上运行(在IIS 6上运行)
- asp.net-web-api – WebApi 2超出最大请求长度
- asp.net – 删除HTML或ASPX扩展
- asp.net-mvc-2 – 是否可以在EditorFor模板控件中使用Displ
