2012-10-01 20 views
5

Aquí tengo una configuración bastante simple usando el nuevo ASP.NET 4.5 en una solución de formularios web. He estado usando Twitter Bootstrap durante casi un año y realmente disfruto el tiempo que me ahorra y la coherencia que aporta a la mesa. Algunos de sus métodos javascript son bastante útiles también. Sin embargo, estoy teniendo un problema al incorporar algunas de las "nuevas formas" que las cosas parecen necesitar hacerse en 4.5. Aquí está mi página maestra:ASP.Net 4.5 Twitter Bootstrap y Validación del lado del cliente

<body> 
    <form id="frmMain" runat="server"> 
     <asp:ScriptManager ID="smManager" runat="server"> 
      <Scripts> 
       <asp:ScriptReference Name="jquery" /> 
       <asp:ScriptReference Name="bootstrap" /> 
      </Scripts> 
     </asp:ScriptManager> 
... 

Y aquí es el contenido de una página de prueba:

<asp:Content ID="Content2" ContentPlaceHolderID="cphMain" runat="server"> 
    <asp:TextBox ID="txtTest" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Problem" ControlToValidate="txtTest" CssClass="error" SetFocusOnError="True" ToolTip="Problem">*</asp:RequiredFieldValidator> 
    <asp:Button ID="btnTest" runat="server" Text="Check" CausesValidation="true" OnClick="btnTest_Click" /><br /> 
    <asp:TextBox ID="txtAnother" runat="server"></asp:TextBox> 
    <asp:Button ID="btnOk" runat="server" CausesValidation="false" Text="No Check" /> 
</asp:Content> 

Aquí está mi archivo Global.asax.cs para mostrar los ScriptReferences se ha señalado anteriormente:

protected void Application_Start(object sender, EventArgs e) { 
    GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; 

    ScriptManager.ScriptResourceMapping.AddDefinition(
     "jquery", 
     new ScriptResourceDefinition { 
      Path = "~/Scripts/jquery-1.8.2.min.js", 
      DebugPath = "~/Scripts/jquery-1.8.2.js", 
      CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js", 
      CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.8.2.js", 
      LoadSuccessExpression = "window.jQuery" 
     } 
    ); // Load jQuery 

    ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.WebForms; 

    ScriptManager.ScriptResourceMapping.AddDefinition(
     "bootstrap", 
     new ScriptResourceDefinition { 
      Path = "~/Scripts/bootstrap.min.js", 
      DebugPath = "~/Scripts/bootstrap.js" 
     } 
    ); // Load Bootstrap 

El lado del cliente que marca el primer cuadro de texto no se está disparando. Si hago clic en el botón 'Comprobar', hago un viaje de ida y vuelta y la página del código subyacente es .Valida == falsa. Eso es bueno, pero no quiero publicar cuando la página no sea válida.

I creado otra página de prueba que no utilizaba mi página principal pero tenía el mismo código en él de la siguiente manera:

<form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="txtTest" runat="server"></asp:TextBox> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Problem" ControlToValidate="txtTest" CssClass="error" SetFocusOnError="True" ToolTip="Problem">*</asp:RequiredFieldValidator> 
     <asp:Button ID="btnTest" runat="server" Text="Check" OnClick="btnTest_Click" /><br /> 
     <asp:TextBox ID="txtAnother" runat="server"></asp:TextBox> 
     <asp:Button ID="btnOk" runat="server" CausesValidation="false" OnClick="btnOk_Click" Text="No Check" /> 
    </div> 
</form> 

Esta página lanza el lado del cliente y por lo tanto se detiene el segundo palo como yo quiero que .

Me parece que el bootstrap.js puede estar acosando o interrumpiendo la validación de js estándar. ¿Alguna sugerencia donde todavía puedo usar bootstrap? Necesito el archivo bootstrap.js ya que maneja los menús desplegables. Al menos podría usar la IU de jQuery para los modales, pero eso no ayuda a los desplegables.

Quiero usar la nueva tecnología pero siempre tenemos estas curvas de aprendizaje.

Respuesta

Cuestiones relacionadas