Saltar al contenido

WebForms UnobtrusiveValidationMode requiere un ScriptResourceMapping para jquery

Solución:

Desde .NET 4.5, los validadores usan atributos de datos y Javascript limitado para hacer el trabajo de validación, por lo que .NET espera que agregue una referencia de script para jQuery.

Hay dos formas posibles de solucionar el error:


Desactivar UnobtrusiveValidationMode:

Agregue esto a web.config:

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

Funcionará como funcionaba en versiones anteriores de .NET y simplemente agregará el Javascript necesario a su página para que los validadores funcionen, en lugar de buscar el código en su archivo jQuery. En realidad, esta es la solución común.


Otra solución es registrar el script:

En Global.asax Application_Start agregue mapeo a su ruta de archivo jQuery:

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
    ScriptManager.ScriptResourceMapping.AddDefinition("jquery", 
    new ScriptResourceDefinition
    {
        Path = "~/scripts/jquery-1.7.2.min.js",
        DebugPath = "~/scripts/jquery-1.7.2.js",
        CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js",
        CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.js"
    });
}

Algunos detalles de MSDN:

ValidationSettings: UnobtrusiveValidationMode Especifica cómo ASP.NET permite globalmente que los controles de validación integrados utilicen JavaScript discreto para la lógica de validación del lado del cliente.

Si el valor de esta clave se establece en “Ninguno” [default], la aplicación ASP.NET utilizará el comportamiento anterior a 4.5 (JavaScript en línea en las páginas) para la lógica de validación del lado del cliente.

Si este valor de clave se establece en “WebForms”, ASP.NET usa atributos de datos HTML5 y JavaScript enlazado tardíamente de una referencia de secuencia de comandos agregada para la lógica de validación del lado del cliente.

Para solucionar este problema en una página específica, es necesario establecer algunas configuraciones de validación al cargar la página. Escriba el código a continuación en Page_Load() método:

protected void Page_Load(object sender, EventArgs e)
    {
        ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
    }

Su trabajo para mí en .NET 4.5

Creo que esta es la mejor solución para este tipo de error. Por lo tanto, agregue la siguiente línea. También funciona mi código cuando estoy usando MSVS 2015.

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

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *