WebForms UnobtrusiveValidationMode necesită o ScriptResourceMapping pentru 'jquery'. Vă rugăm să adăugați un ScriptResourceMapping numit jquery(case-sensitive)

Am'm a construi o aplicație web folosind Visual Studio 2012. Am'm a încerca să adăugați numărul de cuvinte în caseta de text. Cu toate acestea, după adăugarea javascript coduri și coduri html. Primesc eroare ca mai sus.

Aici este meu javascript codeds

Cod :

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

Server coduri in pagina de master

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

ASPX coduri ( coduri 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>
Comentarii la întrebare (1)
Soluția

Ai nevoie de un web.config-cheie pentru a permite pre 4.5 modul de validare.

Mai multe Informatii pe ValidationSettings:UnobtrusiveValidationMode:

Specifică modul în care ASP.NET la nivel global permite built-in controale validator pentru a utiliza discret JavaScript pentru validare client-side logica.

Tip: UnobtrusiveValidationMode

valoare Implicită: Nici unul

Observații: Dacă această valoare cheie este setat la "Nimic" [default], la ASP.NET aplicația va utiliza pre-4.5 comportament (JavaScript inline în pagini) pentru validare client-side logica. Dacă această valoare cheie este setat pentru a "WebForms", ASP.NET utilizări HTML5 date atribute și târziu legat JavaScript de adăugat un script de referință pentru validare client-side logica.

de Exemplu:

Comentarii (7)

Mai degrabă decât să dezactivați o caracteristică nouă, am optat să urmați instrucțiunile de eroare. În global.asax.cs am adăugat:

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

Acest lucru vine de la o msdn post pe blog, care evidențiază unele dintre avantajele de script-ul de resurse mapări. De interes special pentru mine a fost un control centralizat asupra livrarea de fișiere script bazat pe "debug=true", EnableCDN, etc.

Comentarii (4)

Există cel puțin trei moduri de a dezactiva utilizarea de discret JavaScript pentru validare client-side:

  1. Adăugați următoarele la web.config:
    <configurare>
    <appSettings>
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="Nimic" />
    </appSettings>
    </configurare>
  2. Setați valoarea de System.Web.UI.ValidationSettings.UnobtrusiveValidationMode static proprietatea de a System.Web.UI.UnobtrusiveValidationMode.Nici unul
  3. Setați valoarea de System.Web.UI.Pagina.UnobtrusiveValidationMode de exemplu proprietatea de a System.Web.UI.UnobtrusiveValidationMode.Nici unul

Pentru a dezactiva funcționalitatea pe o bază per pagină, prefer să setați Pagina.UnobtrusiveValidationMode proprietatea, folosind pagina de directiva:

Comentarii (1)

Discret validare este activată în mod implicit în noua versiune a ASP.NET. Discret de validare cu scopul de a reduce dimensiunea paginii prin înlocuirea inline JavaScript pentru efectuarea de validare, cu o mică bibliotecă JavaScript care foloseste jQuery.

Puteți fie dezactiva de editare web.config pentru a include următoarele:



Sau mai bine configurați corect prin modificarea metodei Application_Start la nivel mondial.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"
        }
    );
}

Pagina 399 de Început ASP.NET 4.5.1 în C# și VB oferă o discuție cu privire la beneficiul discret de validare și un walkthrough pentru configurarea.

Pentru cei care caută pentru RouteConfig. Acesta este adăugat în mod automat atunci când face un nou proiect în visual studio la App_Code folder. Conținutul arata ceva de genul asta:

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);
        }
    }
}
Comentarii (2)

pentru a adăuga un pic mai mult pentru răspunsul la b_levitt... pe 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"
            });
        }
    }
}

pe default.aspx










Comentarii (0)

Cred că am întâlnit aceeași dilemă. Am început confruntă cu problema atunci când am schimbat la:


Care oferă eroare mesaj ai descris mai sus.

adăugând:


Rezolvă problema, , dar apoi se face validarea comenzilor/script arunca Javascript erori de rulare. Dacă te-ai schimba pentru:


Tu ar trebui să fie OK, , dar va trebui să asigurați-vă că restul de cod nu/ se comportă după cum doriți. S-ar putea, de asemenea, trebuie să renunțe la o parte noile caracteristici sunt disponibile numai în 4.5 ulterioare.

P. S. este foarte recomandat să citiți următoarele înainte de a implementa această soluție. În special, dacă utilizați Asincron funcționalitate:

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

ACTUALIZARE aprilie 2017: După unele unele experimentare și testare trebuie să vină cu o combinație care funcționează:


cu:

versiune jQuery 1.11.3

Comentarii (0)

Problema a apărut ca urmare a Controlului validator. Trebuie doar să Adăugați J Interogare de referință la pagina dvs. de web, după cum urmează apoi adăugați Setările de Validare în dvs. de web.fișier de configurare pentru a depăși această problemă. Nu prea confruntat cu aceeași problemă și mai jos dat solutia la problema mea.

Pasul 1:

Pasul 2 :

Se va rezolva problema ta.

Comentarii (1)

În cazul în care codul sau de configurare arată corect după ce se uită la alte răspunsuri, și eu am avut această problemă cu un desfășurată (dezvoltarea de intermediere) web site-ul și a constatat că problema a fost că, la nivel Mondial.asax a fost redenumit. (Către mine, cu câteva zile mai devreme, atunci când joci cu customErrors și Application_Error)

Comentarii (0)