<form id="MasterPageForm" runat="server">
Ancak var, bu
<form name="aspnetForm" method="post" action="SomePage.aspx..." id="aspnetForm">
dönüşür o form için oluşturulan HTML kimliği ne ayarlamak mümkün mü?
<form id="MasterPageForm" runat="server">
Ancak var, bu
<form name="aspnetForm" method="post" action="SomePage.aspx..." id="aspnetForm">
dönüşür o form için oluşturulan HTML kimliği ne ayarlamak mümkün mü?
Not: Bir ana sayfa kullandığınız için "aspnetForm" görüyorsunuz.
İşte o hata için sorumlu kodu:
Bu thread içinde çözüm bulundu... Kısacası
http://forums.asp.net/p/883974/929349.aspx
, bu yanıtın söz konusu bağlantıdan budur
public override string UniqueID
{
get
{
if (this.NamingContainer == this.Page)
{
return base.UniqueID;
}
return "aspnetForm";
}
}
Gördüğünüz gibi, adlandırma kabı geçerli sayfadan farklı olduğunda (bir ana sayfa kullandığınızda gerçekleşen bir şey) e UniqueID özelliği "aspnetForm" değerini döndürür. Bu özellik, form etiketinde istemciye gönderilen name niteliğine işlenir. Yani, gerçekten ihtiyacınız varsa, htmlform'dan miras alarak kendi formunuzu oluşturabilir ve ardından UniqueID özelliğini veya Name özelliğini geçersiz kılabilirsiniz (bu daha iyi bir seçenek olabilir).
örneği özel HtmlForm sınıfı bu gibi olabilir:
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";
}
}
}
Not: Kesinlikle başka bir şey "f" den formun adını değiştirebilir veya dinamik bir değerini okumak olabilir, gelen söylemek Bir web.config dosyası veya benzeri.
ve "aspnetForm" ile geçersiz kılmasını çerçeveyi önlemek için form etiketi üzerinde "ClientIDMode" özniteliğini "statik" Set böylece<%@Register tagprefix="LA" Namespace="Mynamespace"%>
...
<LA:form runat="server" id="frm">
...
</LA:form>
gibi kullanılabilir. Bu saatlerce beni deli ediyordu.
Öznitelik bilgisi olmayanlar için (benim gibi): Öznitelik ana sayfa parametrelerinde ayarlanmalıdır '<% @ Master ClientIDMode =" Statik "' .... Daha fazla bilgi için http://weblog.west-wind.com/posts/2009/Nov/07/ClientIDMode-in-ASPNET-40 – IvanH
@ Sumo'nun kabul edilen cevap altındaki yorumuyla aynı fikirdeyim ve aynı durumdaydım.
ASP.NET 4.0'da, ana sayfa, bir kimlik verilmediyse, oluşturulan html otomatik olarak bir tane atanacaktır. Aksi takdirde, işlenen html'nin özgün tanımlanmış kimliği olacaktır.
ASP.NET 4'te, bu davranış değişti. '