5

Ich habe eine ziemlich einfache Einrichtung hier mit dem neuen ASP.Net 4.5 in einer Web Forms-Lösung. Ich benutze Twitter Bootstrap seit fast einem Jahr und genieße wirklich die Zeit, die es mir spart und die Konsistenz, die es auf den Tisch bringt. Einige ihrer Javascript-Methoden sind auch sehr nützlich. Ich habe jedoch ein Problem damit, einige der "neuen Wege" einzubauen, die in 4.5 zu tun scheinen. Hier ist mein Master-Seite:ASP.Net 4.5 Twitter Bootstrap und Client Side Validation

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

Und hier ist der Inhalt einer Testseite:

<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> 

Hier ist meine Global.asax.cs Datei die ScriptReferences zu zeigen, wie oben angegeben:

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 

Die clientseitige Überprüfung des ersten Textfelds wird nicht ausgelöst. Wenn ich auf den "Check" -Button klicke, macht es einen Rundgang und die Code-Behind's Page.IsValid == false. Das ist gut, aber ich möchte nicht zurückschreiben, wenn die Seite nicht gültig ist.

Ich habe eine weitere Testseite, die nicht meine Master-Seite verwenden, aber in den gleichen Code wie folgt hatte:

<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> 

Diese Seite die Client-Seite wirft und stoppt damit den Posten zurück, wie ich es will .

Es scheint mir, dass die bootstrap.js die Standard-js-Validierung anhört oder unterbricht. Irgendwelche Vorschläge, wo ich noch Bootstrap verwenden kann? Ich brauche die Datei bootstrap.js, da sie die Dropdown-Menüs behandelt. Ich könnte zumindest die Benutzeroberfläche von jQuery für die Modale verwenden, aber das hilft den Dropdown-Listen nicht.

Ich möchte die neue Technologie verwenden, aber wir haben immer diese Lernkurven.

Antwort