html asp.net visual-studio word-count

html - WebForms UnobtrusiveValidationMode requiere un ScriptResourceMapping para ''jquery''. Agregue un ScriptResourceMapping denominado jquery(distingue entre mayúsculas y minúsculas)



asp.net visual-studio (8)

Creo que me he encontrado con el mismo dilema. Comencé a encontrar el problema cuando cambié a:

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

Lo que le da el mensaje de error que describe anteriormente.

añadiendo:

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

Resuelve el problema, pero luego hace que sus controles / scripts de validación arrojen errores de tiempo de ejecución de Javascript. Si cambias a:

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

Debería estar bien, pero tendrá que asegurarse de que el resto de su código se comporte como se desea. También es posible que deba renunciar a algunas características nuevas que solo están disponibles a partir de 4.5.

PS Es muy recomendable que lea lo siguiente antes de implementar esta solución. Especialmente, si usas la funcionalidad Async:

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

ACTUALIZACIÓN Abril 2017: Después de algunos experimentos y pruebas, he encontrado una combinación que funciona:

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

con:

jQuery version 1.11.3

Estoy creando una aplicación web con Visual Studio 2012. Estoy intentando agregar un recuento de palabras en mi cuadro de texto. Sin embargo, después de agregar los códigos javascript y los códigos html. Recibo el error como se indica arriba.

Aquí está mi código 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 servidor en página maestra

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


El problema ocurrió debido al validador de control. Simplemente agregue la referencia de J Query a su página web de la siguiente manera y luego agregue la Configuración de Validación en su archivo web.config para solucionar el problema. Yo también enfrenté el mismo problema y el siguiente dio la solución a mi problema.

Paso 1:

Paso 2 :

Se resolverá su problema.


En lugar de deshabilitar una nueva función, opté por seguir las instrucciones del error. En mi global.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 proviene de una publicación de blog de MSDN que destaca algunas de las ventajas de las asignaciones de recursos de script. De particular interés para mí fue el control centralizado sobre la entrega de los archivos de script basados ​​en "debug = true", EnableCDN, etc.


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

  1. Agregue lo siguiente al archivo web.config:

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

  2. Establezca el valor de la propiedad estática System.Web.UI.UnobtrusiveValidationMode.None en System.Web.UI.UnobtrusiveValidationMode.None
  3. Establezca el valor de la propiedad de instancia System.Web.UI.UnobtrusiveValidationMode.None en System.Web.UI.UnobtrusiveValidationMode.None

Para deshabilitar la funcionalidad por página, prefiero establecer la propiedad Page.UnobtrusiveValidationMode usando la directiva de página:

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


La validación discreta se habilita de forma predeterminada en la nueva versión de ASP.NET. La validación discreta tiene como objetivo reducir el tamaño de la página al reemplazar el JavaScript en línea para realizar la validación con una pequeña biblioteca de JavaScript que utiliza jQuery.

Puede deshabilitarlo editando web.config para incluir lo siguiente:

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

O mejor aún, configúrelo correctamente modificando el 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" } ); }

La página 399 de Beginning ASP.NET 4.5.1 en C # y VB proporciona una discusión sobre el beneficio de la validación discreta y un tutorial para configurarlo.

Para aquellos que buscan RouteConfig. Se agrega automáticamente cuando crea un nuevo proyecto en Visual Studio en la carpeta App_Code. Los contenidos se ven algo así:

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


Necesita una clave web.config para habilitar el modo de validación anterior a 4.5.

Más información sobre ValidationSettings:UnobtrusiveValidationMode :

Especifica cómo ASP.NET habilita globalmente los controles de validación incorporados para usar JavaScript discreto para la lógica de validación del lado del cliente.

Tipo: UnobtrusiveValidationMode

Valor por defecto: Ninguno

Observaciones: Si este valor clave se establece en "Ninguno" [predeterminado], 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 clave se establece en "WebForms" , ASP.NET utiliza atributos de datos HTML5 y JavaScript enlazado tardío de una referencia de script agregada para la lógica de validación del lado del cliente.

Ejemplo:

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


Si su código o configuración se ve correcta después de ver las otras respuestas, también tuve este problema con un sitio web implementado (desarrollo de pruebas) y descubrí que el problema era que el archivo Global.asax había sido renombrado. (Por mi parte, unos días antes al jugar con CustomErrors y Application_Error)


para agregar un poco más a la respuesta de b_levitt ... en global.asax:

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

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