/ / Preciso usar três bibliotecas javascript para validação com o asp.net MVC4? - javascript, jquery, asp.net-mvc-4

Preciso usar três bibliotecas javascript para validação com o asp.net MVC4? - javascript, jquery, asp.net-mvc-4

Eu gostaria de fazer a validação do meu formulário, então estou olhando o aplicativo de exemplo da ASP.NET MVC4.

Aqui vejo que usa o seguinte:

jquery.unobtrusive-ajax.js
jquery.validate.js
jquery.validate.unobtrusive.js

Alguém pode explicar. Eu preciso de todas essas bibliotecas js. Eu pensei que eu li em algum lugar que um estava agora fazendo o trabalho de o outro, mas eu vejo a amostra ainda carrega todos os três deles.

Respostas:

4 para resposta № 1

Alguém pode explicar. Eu preciso de todas essas bibliotecas js.

Não, absolutamente não.

Para a validação não-intrusiva do jquery, você precisa dos seguintes 3 scripts adicionados nessa ordem específica:

  1. jquery.js
  2. jquery.validate.js
  3. jquery.validate.unobtrusive.js

o jquery.unobtrusive-ajax.js script não tem absolutamente nada a ver com validação. Isso é usado por todos os Ajax.* ajudantes (como Ajax.BeginForm e Ajax.ActionLink).

Agora, dito isto, a ASP.NET MVC 4 usa pacotes de script. Por exemplo, quando você cria um novo aplicativo ASP.NET MVC 4 usando o Modelo de Internet no Visual Studio, ele cria o ~/App_Start/BundleConfig.cs arquivo para você contendo o seguinte registro:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));

Isso significa que, se dentro do layout ou exibição, você chamar:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")

você vai entrar no modo de depuração:

<script src="/Scripts/jquery-1.7.1.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

No modo Liberação (<compilation debug="false"> no seu web.config) todos esses scripts serão reduzidos, compactados e empacotados em um único script veiculado por meio de um endpoint dinâmico.