148 votos

WebForms UnobtrusiveValidationMode requiere una ScriptResourceMapping para 'jquery'. Por favor, añada una ScriptResourceMapping llamado jQuery (mayúsculas y minúsculas)

Estoy construyendo una aplicación web utilizando Visual Studio 2012. Estoy intentando añadir recuento de palabras en mi caja de texto. Sin embargo después de añadir los códigos de javascript y los códigos html. Recibo el error como se ha dicho.

Aquí está mi codeds javascript

Código:

 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, "");
}
 

Códigos de servidores en la página principal

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

Códigos ASPX, (códigos HTML)

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

284voto

ericdc Puntos 2966

Usted necesita una web.clave de configuración para habilitar el pre 4.5 validación de modo.

Más Info en ValidationSettings:UnobtrusiveValidationMode:

Especifica cómo ASP.NET a nivel mundial permite a los incorporados en los controles de validación el uso de JavaScript no intrusivo para la validación del cliente de la lógica.

Tipo: UnobtrusiveValidationMode

Valor predeterminado: Ninguno

Observaciones: Si el valor de esta clave está establecido en "Ninguno" [por defecto], la ASP.NET la aplicación hará uso de la pre-4.5 comportamiento (JavaScript inline en las páginas) para la validación del cliente de la lógica. Si el valor de esta clave se establece a "Formularios", ASP.NET utiliza HTML5 de datos de atributos y enlazado en tiempo de ejecución JavaScript desde un script agregado de referencia para la validación del lado cliente la lógica.

Ejemplo:

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

85voto

b_levitt Puntos 1218

En lugar de deshabilitar una característica nueva, he optado por seguir las instrucciones del error. En mi mundial.asax.cs he añadido:

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"
    });
}

Esto viene de un blog de msdn post que pone de relieve algunas de las ventajas de la secuencia de comandos de los recursos de las asignaciones. De particular interés para mí fue un control centralizado sobre la entrega de los archivos de secuencias de comandos basado en "debug=true", EnableCDN, etc.

45voto

Ryan Prechel Puntos 1050

Hay al menos tres formas de deshabilitar el uso de JavaScript no intrusivo para la validación del lado cliente:

  1. Agregue lo siguiente a la web.archivo de configuración:
    <configuration>
      <appSettings>
        <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
      </appSettings>
    </configuration>
  2. Establezca el valor de la System.Web.UI.ValidationSettings.UnobtrusiveValidationMode propiedad estática a System.Web.UI.UnobtrusiveValidationMode.None
  3. Establezca el valor de la System.Web.UI.Page.UnobtrusiveValidationMode propiedad de instancia para System.Web.UI.UnobtrusiveValidationMode.None

Para deshabilitar la funcionalidad en un por base de la página, prefiero establecer el Page.UnobtrusiveValidationMode de la propiedad mediante la directiva de página:

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

28voto

denver Puntos 653

Discreta validación está habilitado por defecto en la nueva versión de ASP.NET. Discreta validación tiene como objetivo disminuir el tamaño de la página mediante la sustitución de la línea de JavaScript para realizar la validación con una pequeña biblioteca JavaScript que utiliza jQuery.

Puede deshabilitar por la edición web.config para incluir los siguientes:

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

O mejor aún configurarlo adecuadamente mediante la modificación del método Application_Start en global.asax:

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"
        }
    );
}

Página 399 de Inicio ASP.NET 4.5.1 en C# y VB proporciona una discusión sobre los beneficios de la discreta y validación de un tutorial para la configuración.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X