it-swarm.com.de

Für WebForms UnobtrusiveValidationMode ist eine ScriptResourceMapping für 'jquery' erforderlich. Bitte fügen Sie ein ScriptResourceMapping mit dem Namen jquery hinzu (Groß- und Kleinschreibung beachten)

Ich erstelle eine Webanwendung mit Visual Studio 2012. Ich versuche, die Anzahl der Wörter in mein Textfeld einzufügen. Allerdings nach dem Hinzufügen der Javascript-Codes und der HTML-Codes. Ich erhalte den Fehler wie oben angegeben.

Hier ist mein Javascript codiert

Code:

function validateLimit(obj, divID, maxchar) {

objDiv = get_object(divID);

if (this.id) obj = this;

var remaningChar = maxchar - trimEnter(obj.value).length;

if (objDiv.id) {
    objDiv.innerHTML = remaningChar + " characters left";
}
if (remaningChar <= 0) {
    obj.value = obj.value.substring(maxchar, 0);
    if (objDiv.id) {
        objDiv.innerHTML = "0 characters left";
    }
    return false;
}
else
{ return true; }
}

function get_object(id) {
var object = null;
if (document.layers) {
    object = document.layers[id];
} else if (document.all) {
    object = document.all[id];
} else if (document.getElementById) {
    object = document.getElementById(id);
}
return object;
}

function trimEnter(dataStr) {
return dataStr.replace(/(\r\n|\r|\n)/g, "");
}

Servercodes auf der Masterseite

<script type="text/javascript" src="js/JScript.js" ></script>

ASPX-Codes (HTML-Codes)

<tr>
<th style="width: 595px; height: 135px;">Official Report :</th>
<td colspan="4" style="height: 135px">
  <asp:TextBox ID="tbofficial" runat="server" Height="121px" TextMode="MultiLine" Width="878px" MaxLength="500"   ToolTip="Summary:(500 characters)" onkeyup="return validateLimit(this, 'lblMsg1', 500)" ></asp:TextBox>
  <div id="lblMsg1">500 characters left</div>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
        ControlToValidate="tbofficial" Display="Dynamic" 
        SetFocusOnError="True">*</asp:RequiredFieldValidator>
  <br />
  <asp:Label ID="lblmsg" runat="server"></asp:Label>
  <br />
  <br />
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
  <asp:Button ID="btnClear" runat="server" Text="Clear" OnClick="btnClear_Click" />
        </td>
</tr>
292

Sie benötigen einen web.config-Schlüssel, um den Überprüfungsmodus vor 4.5 zu aktivieren.

Weitere Informationen zu ValidationSettings: UnobtrusiveValidationMode:

Gibt an, wie ASP.NET es den integrierten Prüfersteuerelementen global ermöglicht, unauffälliges JavaScript für die clientseitige Prüflogik zu verwenden.

Typ: UnobtrusiveValidationMode

Standardwert: Keine

Hinweise: Wenn dieser Schlüsselwert auf "None" [Standard] festgelegt ist, verwendet die ASP.NET-Anwendung . das Verhalten vor 4.5 (JavaScript inline in den Seiten) für die clientseitige Validierungslogik. Wenn dieser Schlüsselwert auf "WebForms" festgelegt ist, verwendet ASP.NET HTML5-Datenattribute und spät gebundenes JavaScript aus einer hinzugefügten Skriptreferenz für die clientseitige Validierungslogik.

Beispiel:

    <appSettings>
      <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
    </appSettings>
556
ericdc

Anstatt eine neue Funktion zu deaktivieren, habe ich mich dafür entschieden, die Anweisungen des Fehlers zu befolgen. In meinem global.asax.cs habe ich hinzugefügt:

protected void Application_Start(object sender, EventArgs e)
{
    string JQueryVer = "1.7.1";
    ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
    {
        Path = "~/Scripts/jquery-" + JQueryVer + ".min.js",
        DebugPath = "~/Scripts/jquery-" + JQueryVer + ".js",
        CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js",
        CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js",
        CdnSupportsSecureConnection = true,
        LoadSuccessExpression = "window.jQuery"
    });
}

Dies stammt aus einem msdn-Blogpost , der einige der Vorteile von Skriptressourcenzuordnungen hervorhebt. Von besonderem Interesse für mich war die zentrale Kontrolle über die Auslieferung der Skriptdateien anhand von "debug = true", EnableCDN usw.

169
b_levitt

Es gibt mindestens drei Möglichkeiten, die Verwendung von unauffälligem JavaScript für die clientseitige Validierung zu deaktivieren:

  1. Fügen Sie der Datei web.config Folgendes hinzu:
    <configuration>
      <appSettings>
        <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
      </appSettings>
    </configuration>
  2. Setzen Sie den Wert der statischen Eigenschaft System.Web.UI.ValidationSettings.UnobtrusiveValidationMode auf System.Web.UI.UnobtrusiveValidationMode.None
  3. Setzen Sie den Wert der Instanzeigenschaft System.Web.UI.Page.UnobtrusiveValidationMode auf System.Web.UI.UnobtrusiveValidationMode.None

Um die Funktionalität pro Seite zu deaktivieren, ziehe ich es vor, die Eigenschaft Page.UnobtrusiveValidationMode mit der Anweisung page festzulegen:

<%@ Page Language="C#" UnobtrusiveValidationMode="None" %>
90
Ryan Prechel

Die unauffällige Überprüfung ist in der neuen Version von ASP.NET standardmäßig aktiviert. Die unauffällige Validierung zielt darauf ab, die Seitengröße zu verringern, indem das Inline-JavaScript zur Durchführung der Validierung durch eine kleine JavaScript-Bibliothek ersetzt wird, die jQuery verwendet.

Sie können es entweder deaktivieren, indem Sie die Datei web.config so bearbeiten, dass sie Folgendes enthält:

<appSettings>
  <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

Oder besser noch richtig konfigurieren, indem Sie die Application_Start-Methode in global.asax ändern:

void Application_Start(object sender, EventArgs e) 
{
    RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);
    ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
        new ScriptResourceDefinition
        {
            Path = "/~Scripts/jquery-2.1.1.min.js"
        }
    );
}

Seite 399 von Beginn von ASP.NET 4.5.1 in C # und VB enthält eine Erläuterung des Nutzens einer unauffälligen Validierung und eine exemplarische Vorgehensweise für deren Konfiguration.

Für alle, die RouteConfig suchen. Es wird automatisch hinzugefügt, wenn Sie in Visual Studio ein neues Projekt im Ordner App_Code erstellen. Der Inhalt sieht ungefähr so ​​aus:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Routing;
using Microsoft.AspNet.FriendlyUrls;

namespace @default
{
    public static class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            var settings = new FriendlyUrlSettings();
            settings.AutoRedirectMode = RedirectMode.Permanent;
            routes.EnableFriendlyUrls(settings);
        }
    }
}
44
denver

um der antwort von b_levitt ... auf global.asax ein wenig mehr hinzuzufügen:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI;

namespace LoginPage
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            string JQueryVer = "1.11.3";
            ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
            {
                Path = "~/js/jquery-" + JQueryVer + ".min.js",
                DebugPath = "~/js/jquery-" + JQueryVer + ".js",
                CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js",
                CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js",
                CdnSupportsSecureConnection = true,
                LoadSuccessExpression = "window.jQuery"
            });
        }
    }
}

auf Ihrer default.aspx

<body>
   <form id="UserSectionForm" runat="server">
     <asp:ScriptManager ID="ScriptManager" runat="server">
          <Scripts>
               <asp:ScriptReference Name="jquery" />
          </Scripts>
     </asp:ScriptManager>
     <%--rest of your markup goes here--%>         
   </form>
</body>
11
BernieSF

Ich glaube, ich bin auf dasselbe Dilemma gestoßen. Ich stieß auf das Problem, als ich zu folgendem wechselte:

</system.web>
<httpRuntime targetFramework="4.5"/>

Welches gibt die Fehlermeldung, die Sie oben beschreiben.

hinzufügen:

<appSettings>
  <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />

Behebt das Problem , veranlasst dann aber Ihre Überprüfungssteuerelemente/Skripte, Javascript-Laufzeitfehler auszulösen. Wenn Sie zu:

</system.web>
<httpRuntime targetFramework="4.0"/>

Sie sollten in Ordnung sein , aber Sie müssen sicherstellen, dass der Rest Ihres Codes wie gewünscht funktioniert/sich verhält. Möglicherweise müssen Sie auch auf einige neue Funktionen verzichten, die erst ab 4.5 verfügbar sind.

P.S. Es wird dringend empfohlen, die folgenden Informationen zu lesen, bevor Sie diese Lösung implementieren. Insbesondere, wenn Sie die Async-Funktionalität verwenden:

https://blogs.msdn.Microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/

UPDATE April 2017: Nach einigem Experimentieren und Testen habe ich eine Kombination gefunden, die funktioniert:

<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
<httpRuntime targetFramework="4.5.1" />

mit:

jQuery Version 1.11.3

10
DaniDev

Das Problem ist auf den Control Validator zurückzuführen. Fügen Sie einfach den J Query-Verweis wie folgt zu Ihrer Webseite hinzu und fügen Sie dann die Überprüfungseinstellungen in Ihre web.config-Datei ein, um das Problem zu beheben. Auch ich hatte das gleiche Problem und das Folgende gab die Lösung für mein Problem.

Schritt 1:

Code to be added in web page

Schritt 2:

Code to be added in Web.config file

Es wird Ihr Problem lösen.

6
Ivan

Wenn Ihr Code oder Ihre Konfiguration nach den anderen Antworten korrekt aussieht, hatte ich auch dieses Problem mit einer bereitgestellten Website (Development Staging) und stellte fest, dass das Problem darin bestand, dass die Datei Global.asax umbenannt wurde. (Von mir ein paar Tage zuvor, als ich mit customErrors und dem Application_Error rumgespielt habe)

0
StingyJack