在我的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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。