validate net mvc data custom bootstrap asp annotation c# asp.net .net validation

c# - net - mvc required field validation



WebForms UnobtrusiveValidationMode requiere un ScriptResourceMapping para jquery (4)

En mi aplicación web recibo el siguiente error:

WebForms UnobtrusiveValidationMode requiere un ScriptResourceMapping para ''jquery''. Agregue un ScriptResourceMapping llamado jquery (sensible a mayúsculas y minúsculas).

Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de la excepción: System.InvalidOperationException: WebForms UnobtrusiveValidationMode requiere un ScriptResourceMapping para ''jquery''. Agregue un ScriptResourceMapping llamado jquery (sensible a mayúsculas y minúsculas).

¿Cómo puedo resolverlo?


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>


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

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

Su trabajo para mí en .NET 4.5


Jaqen H''ghar es directo. Una tercera forma es:

  1. Ve a Administrar Paquetes NuGet
  2. Instalar Microsoft.jQuery.Unobtrusive.Validation
  3. Abra el archivo Global.asax.cs y agregue este código dentro del método Application_Start

Código que se ejecuta en el inicio de la aplicación:

ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { Path = "~/Scripts/jquery.validate.unobtrusive.min.js", DebugPath = "~/Scripts/jquery.validate.unobtrusive.min.js" });


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

Hay dos formas posibles de resolver el error:

Deshabilitar el modo de UnobtrusiveValidationMode :

Agregue esto a web.config:

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

Funcionará como funcionaba en las 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. Esta es la solución común en realidad.

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.min.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 del validador incorporados utilicen JavaScript discreto para la lógica de validación del lado del cliente.

Si este valor de clave se establece en "Ninguno" [predeterminado], la aplicación ASP.NET usará 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 utiliza atributos de datos HTML5 y JavaScript enlazado tarde desde una referencia de script añadida para la lógica de validación del lado del cliente.