• Follow us on Twitter
  • Join our Facebook Group
  • Join me on Google Plus
  • Add me on Linkedin
  • RSS

  • Home
  • Séries
    • Entity Framework
    • Minhas Palestras
    • ASP .NET MVC
  • Meus Repositórios
    • CodePlex
    • GitHub

Blog - Latest News

Validação de Data e Moeda (ASP.Net MVC + JQuery Validation) em Português

45 Comments/ in Sem categoria / by Cleyton Ferrari
31 de janeiro de 2013

Sempre vejo na internet um monte de solução para a validação de data e moeda em Português (PT-Br) uma mais complicada que a outra. Já se perguntou: isso deveria ser simples? e é super simples, veja como agora.

Validando data e moeda em ASP.Net MVC

Para exemplificar eu criei um projeto “ASP.Net MVC 4 Web Application” e usei o template “Basic”, uma vez criado o projeto foi feito os seguintes passos:

1. Globalizando o ASP.Net MVC para PT-Br

É pouco divulgado, mais existe uma versão do MVC (Microsoft.AspNet.Mvc) em Português, feita pelo pessoal do time do ASP .Net MVC da Microsoft e esta versão traduz para você as mensagens de erro para o português.
Sua instalação é bem simplificada feita usando o pacato de nuget “Microsoft.AspNet.Mvc.pt-br”, para instalar digite o seguinte comando no Package Manager Console (Tools/Library Package Manager/Package Manager Console):

PM> Install-Package Microsoft.AspNet.Mvc.pt-br

Isto irá instalar o MVC em Português, e atualizar as suas dependências.

2. Globalizando jQuery Validation para PT-Br

O jQuery Valitation é o responsável pela validação do lado do cliente, para globalizar ele para PT-Br precisamos criar um novo arquivo na pasta “Scripts” chamado “methods_pt.js” com o seguinte conteúdo:

/*
 * Localized default methods for the jQuery validation plugin.
 * Locale: PT_BR
 */
jQuery.extend(jQuery.validator.methods, {
    date: function (value, element) {
        return this.optional(element) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(value);
    },
    number: function (value, element) {
        return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
    }
});

Com isso o jQuery Validation passa a validar data no formato “dd/mm/yyyy” e moeda agora usa o separador “,” para as casas decimais e não mais o “.” como é o padrão americano.

3. Atualizando o Bundle do jQueryval

Agora podemos atualizar o Bundle do JQuery Validation “jQueryval”, para isso precisamos abrir o arquivo “BundleConfig.cs” que esta na pasta do seu projeto “App_Start” e alterar o bundle “jqueryval” e adicionar o arquivo “methods_pt.js” criado anteriormente.

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

Pronto agora é só usar!

4. Testando a validação em Português

Para efeito de teste eu crie um model chamado “Produto.cs” com o seguinte código:

public class Produto
{
    public string Nome { get; set; }
    public DateTime Validade { get; set; }
    public decimal Valor { get; set; }
}

Agora foi só criar um controle “Home” com uma action “Index” e gerar um scafolld para “Create”, veja o código do controle e da view abaixo:

HomeController.cs

using System.Web.Mvc;
using ValidandoDataeMoeda.Models;

namespace ValidandoDataeMoeda.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Index(Produto produto)
        {
            return View(produto);
        }
    }
}

e o código da View, Index.cshtml

@model ValidandoDataeMoeda.Models.Produto

@{
    ViewBag.Title = "Index";
}

<h2>Validando Data e Moeda em ASP.Net MVC 4</h2>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Produto</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Nome)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Nome)
            @Html.ValidationMessageFor(model => model.Nome)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Validade)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Validade)
            @Html.ValidationMessageFor(model => model.Validade)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Valor)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Valor)
            @Html.ValidationMessageFor(model => model.Valor)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

Como de costume você pode baixar o código no meu GitHub.

Bom pessoal era isso! e ajudem a divulgar se possível!

Tags: asp.net, jQuery, MVC
← Vídeo-Aula ASP.Net MVC na prática – Parte 6
Arquivos CSV com C# no ASP .Net MVC 4 →
Related Posts
Vídeo-Aula ASP.Net MVC na prática – Parte 7
Vídeo-Aula ASP.Net MVC na prática – Parte 9-3
Vídeo-Aula ASP.Net MVC na prática – Parte 9-2
Vídeo-Aula ASP.Net MVC na prática – Parte 8...

Google+

376Follower
Popular
  • Vídeo-Aula ASP.Net MVC na prática – Parte 1junho 18, 2012, 9:13 pm
  • Validação de Data e Moeda (ASP.Net MVC + JQuery Validation)...janeiro 31, 2013, 11:27 am
  • Vídeo-Aula ASP.Net MVC na prática – Parte 6janeiro 12, 2013, 3:50 pm
  • Rotativa W7 gerando relatórios em PDF no ASP.Net MVCdezembro 26, 2012, 5:53 pm
  • Vídeo-Aula ASP.Net MVC na prática – Parte 9-1setembro 27, 2013, 6:00 pm
Recent
  • Visual StudioVisual Studio 2015julho 20, 2015, 7:57 pm
  • MySQL com ASP.Net MVCmaio 6, 2015, 4:16 pm
  • Vídeo-Aula ASP.Net MVC na prática – Parte 9-3março 29, 2014, 3:14 pm
  • Vídeo-Aula ASP.Net MVC na prática – Parte 9-2janeiro 26, 2014, 9:56 am
  • Vídeo-Aula ASP.Net MVC na prática – Parte 9-1setembro 27, 2013, 6:00 pm
Comments
  • ótimo, agora concidera vírgula como decimal, porém a...janeiro 31, 11:27 am by gilmar
  • Parabéns pelo artigo Cleyton, para utilizar a sua solução...janeiro 31, 11:27 am by Braytiner Heggendorn
  • Certo Danilo! Muito obrigado pela dica!!janeiro 31, 11:27 am by José Furtado
  • Olá José, tudo bem? Então, trabalhando em um projeto...janeiro 31, 11:27 am by Danilo Miranda
  • Olá Danilo! Hoje enfrento o mesmo problema que você, já...janeiro 31, 11:27 am by José Furtado
Tags
.net alsummit asp.net clean code complexidade comunidade CSharp EF evento hyper-v IISExpress jQuery metro MVC MySQL nuget razor Rotativa W7 SignalR SQL TDD TechEd Testes Unitários TFS11 TFS2012 Visual Studio VS2012 Vídeo-Aula windows8 wp7

Series

  • ASP.Net MVC (16)
  • Entity Framework (4)
  • Minhas Palestras (1)

Interesting links

Besides are some interesting links for you! Enjoy your stay :)

Últimos Comentários

  • gilmar em Validação de Data e Moeda (ASP.Net MVC + JQuery Validation) em Português
  • Braytiner Heggendorn em Validação de Data e Moeda (ASP.Net MVC + JQuery Validation) em Português
© Copyright - Cleyton Ferrari - Wordpress Theme by Kriesi.at