jQuery를 사용한 ASP.Net 2012 Unobtrusive Validation
Visual Studio 2012를 사용하고 있었고 빈 ASP.Net 웹 응용 프로그램을 만들었습니다 . 기존 유효성 검사기 컨트롤 을 새 페이지 에 추가하려고하면 다음 오류가 발생합니다.
WebForms UnobtrusiveValidationMode에는 'jquery'에 대한 ScriptResourceMapping이 필요합니다. jquery (대소 문자 구분)라는 ScriptResourceMapping을 추가하십시오.
문제를 해결하는 단계는 무엇입니까?
이것은 내 페이지 마크 업입니다.
<asp:Panel runat="server" ID="pnlUsername" GroupingText="Username settings">
<div>
<asp:Label ID="usernameLabel" Text="Please enter your username" runat="server" AssociatedControlID="username" />
</div>
<div>
<asp:TextBox runat="server" ID="username" />
<asp:RequiredFieldValidator ErrorMessage="The username is required" ControlToValidate="username" runat="server" Text=" - Required" />
</div>
</asp:Panel>
ValidationSettings : UnobtrusiveValidationMode 값에 대한 잘못된 정보가 많은 것 같습니다. 비활성화 하려면 다음을 수행해야합니다.
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
이 기능을 비활성화하려면 WebForms가 아닌 None이라는 단어를 사용해야합니다.
이것은 MS Connect 포럼 의 공식 Microsoft 답변입니다 . 아래 관련 텍스트를 복사하고 있습니다.
.NET 4.5를 대상으로하는 경우 Unobtrusive Validation이 기본적으로 활성화됩니다. 프로젝트에 jQuery가 있어야하고 jQuery를 제대로 등록하려면 Global.asax에 다음과 같은 내용이 있어야합니다.
ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
new ScriptResourceDefinition {
Path = "~/scripts/jquery-1.4.1.min.js",
DebugPath = "~/scripts/jquery-1.4.1.js",
CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.1.min.js",
CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.1.js"
});
jQuery 버전을 사용중인 버전으로 바꿉니다.
다음 줄을 제거하여 web.config에서이 새로운 기능을 비활성화 할 수도 있습니다.
<add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />
ValidationSettings : UnobtrusiveValidationMode 에 대한 추가 정보
ASP.NET에서 기본 제공 유효성 검사기 컨트롤이 클라이언트 쪽 유효성 검사 논리에 눈에 띄지 않는 JavaScript를 사용하도록 전역 적으로 설정하는 방법을 지정합니다.
유형 : UnobtrusiveValidationMode
기본값 : 없음
설명 :이 키 값이 "None" [기본값]으로 설정되면 ASP.NET 응용 프로그램은 클라이언트 쪽 유효성 검사 논리에 대해 4.5 이전 동작 (페이지의 JavaScript 인라인)을 사용합니다. 이 키 값이 "WebForms"로 설정 되면 ASP.NET은 클라이언트 쪽 유효성 검사 논리에 대해 추가 된 스크립트 참조에서 HTML5 데이터 특성 및 후기 바인딩 된 JavaScript를 사용합니다 .
예:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
ScriptResourceDefinition
Global.asax 의 필수 "jquery"이외 (자신의 경로 사용) :
protected void Application_Start(object sender, EventArgs e)
{
ScriptManager.ScriptResourceMapping.AddDefinition(
"jquery",
new ScriptResourceDefinition
{
Path = "/static/scripts/jquery-1.8.3.min.js",
DebugPath = "/static/scripts/jquery-1.8.3.js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "jQuery"
});
}
당신은 또한 전용 "WebUIValidation.js"를 추가 명시 적으로 필요 후 "JQuery와" ScriptReference
에서 ScriptManager
(가장 중요한 부분) :
<asp:ScriptManager runat="server" EnableScriptGlobalization="True" EnableCdn="True">
<Scripts>
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" />
</Scripts>
</asp:ScriptManager>
If you add it before "jquery", or if you don't add any or both of them at all (ASP.Net
will then automatically add it before "jquery") - the client validation will be completely broken:
You don't need any of those NuGet packages at all, nor any additional ScriptReference
(some of which are just duplicates, or even a completely unnecessary bloat - as they are added automatically by ASP.Net
if needed) mentioned in your blog.
EDIT: you don't need to explicitly add "WebForms.js" as well (removed it from the example) - and if you do, its LoadSuccessExpression
will be ignored for some reason
All the validator error has been solved by this
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
Error must be vanished enjoy....
Add a reference to Microsoft.JScript
in your application in your web.config
as below :
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="Microsoft.JScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5"/>
</system.web>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="none"/>
</appSettings>
</configuration>
Just copy & paste any JQuery file in your project and add a Global.asax
file and modify it as below:
I just paste the JQuery file in my project and add a reference in Global.asax file:
protected void Application_Start(object sender, EventArgs e)
{
ScriptManager.ScriptResourceMapping.AddDefinition(
"jquery",
new ScriptResourceDefinition
{
Path = "~/jquery-1.10.2.js",
DebugPath = "~/jquery-1.10.2.js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "jQuery"
});
}
In the Nuget Package manager search for AspNet.ScriptManager.jQuery instead of jquery. THat way you will not have to set the mappings yourself and the project will work with the click of a simple install.
Or disable the Unobtrusive Validation by adding this line to the Configuration tag of the web.config file in the project.
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
In "configuration file" instead this lines:
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
by this lines:
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
This error because in version 4.0 library belong to "asp:RequiredFieldValidator" exist but in version 4.5 library not exist so you need to add library by yourself
<add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />
this line was not in my WebConfig so : I simple solved this by downgrading targetting .Net version to 4.0 :)
in visual studio 2012 in the web.config change the targetFramework=4.5 to targetFramework=4.0
I suggest to instead this lines
<div>
<asp:TextBox runat="server" ID="username" />
<asp:RequiredFieldValidator ErrorMessage="The username is required" ControlToValidate="username" runat="server" Text=" - Required" />
</div>
by this line
<div>
<asp:TextBox runat="server" ID="username" required />
</div>
ReferenceURL : https://stackoverflow.com/questions/12452109/asp-net-2012-unobtrusive-validation-with-jquery
'development' 카테고리의 다른 글
Eclipse가 SBT의 종속성을 인식하도록하는 방법 (0) | 2021.01.05 |
---|---|
Resque 대기열의 작업 수를 프로그래밍 방식으로 가져옵니다. (0) | 2021.01.05 |
"{변수}는 점 표기법으로 작성하는 것이 더 좋습니다."를 억제하는 방법 (0) | 2021.01.05 |
웹팩 번들의 크기를 최소화하는 방법은 무엇입니까? (0) | 2021.01.05 |
jQuery : 클릭시 설정된 증분 (픽셀)만큼 페이지를 아래로 스크롤 하시겠습니까? (0) | 2021.01.05 |