Overblog Suivre ce blog
Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

19 mai 2014 1 19 /05 /mai /2014 22:43

 

III jQuery et Web Api

Si on commence avec un projet vide et que l’on désire ensuite utiliser Web API, ajouter :

wb6.png

(toujours pareil)

 

       <script> 

         $(function () {

        // code ici

         });

        </script>

 

Note on peut réduire l’url « http://localhost:12681/api/persons » à  « /api/persons" si on accède au contrôleur depuis la même application

1-Get

Avec $.ajax

 

              // Méthode permettant d'afficher une liste de personnes dans la div "container"              

               function displayPersons(persons) {                 

                        var html = "<hr />";

                        $.each(persons, function (index, person) {

                            html += "<strong>" + person.PersonID + "</strong>" + person.PersonFullName + "<br/>";

                        })

                        $("#container").html(html);

                }

 

               

                $("#btGet").click(function (evt) {

                    var options = {

                        url: "http://localhost:12681/api/persons",

                        type: "GET",

                        success: function (persons) { displayPersons(persons); },

                        error: function (jqXHR, status, err) { alert(status + ", " + err); }

                    };

                    //

                    $.ajax(options);

                });

 

Avec $.getJSON

 

                $("#btGet").click(function (evt) {

                    var url = url = "http://localhost:12681/api/persons";

                    $.getJSON(url, function (persons) { displayPersons(persons) });

                });

 

2-GetOne(GET)

Avec $.ajax

 

$("#btGetOne").click(function (evt) {

 

                    var options = {

                        url: "http://localhost:12681/api/persons/" + $("#tbID").val(),

                        type: "GET",

                        success: function (person) { $("#container").html("<strong>" + person.PersonFullName + "</strong>"); },

                        error: function (jqXHR, status, err) { alert(status + ", " + err); }

                    };

                    $.ajax(options);

                   

                })

 

Avec $.getJSON

 

$("#btGetOne").click(function (evt) {

                    $.getJSON("http://localhost:12681/api/persons/" + $("#tbID").val(),function (person) {

                      $("#container").html("<strong>" + person.PersonFullName + "</strong>");

                    })

                     .fail(

                        function (xhr, textStatus, err) {

                            $("#container").html(status);

                        });

                   

                })

 

3-Add (POST)

 

$("#btAdd").click(function (evt) {

 

                var person ={

                    personID:$("#tbID").val(),

                    personFullName:$("#tbName").val()

                };

 

                var options = {

                    url: "http://localhost:12681/api/persons/",

                    type: "POST",

                    contentType: 'application/json; charset=utf-8',

                    data: JSON.stringify(person),

                    success: function () { displayPersons(); },

                    error: function (jqXHR, status, err) { $("#container").html(status); }

                };

 

                $.ajax(options);

            })

 

 

4-Update(PUT)

 

  $("#btUpdate").click(function (evt) {

 

                var person ={

                    personID:$("#tbID").val(),

                    personFullName:$("#tbName").val()

                };

 

                var options = {

                    url: "http://localhost:12681/api/persons/",

                    type: "PUT",

                    contentType: 'application/json; charset=utf-8',

                    data: JSON.stringify(person),

                    success: function () { displayPersons(); },

                    error: function (jqXHR, status, err) { $("#container").html(status); }

                };

 

                $.ajax(options);

            })

 

 

5-Delete (DELETE)

 

$("#btDelete").click(function (evt) {

                var options = {

                    url: "http://localhost:12681/api/persons/" + $("#tbID").val(),

                    type: "DELETE",

                    success: function () { displayPersons(); },

                    error: function (jqXHR, status, err) { $("#container").html(status); }

                };

 

                $.ajax(options);

            }) 

 

 

Le contrôleur « classique »

 wb7.png

Repost 0
Published by Romagny13 - dans ASP.NET MVC
commenter cet article
15 mai 2014 4 15 /05 /mai /2014 22:56



 

 

Le contrôleur.

N’ayant pas de constructeur par défaut, si on ne définit pas les dépendances on a une erreur

Sinon le reste est classique, on vérifie que le modèle est valide (Data Annotations).S’il est valide on ajoute l’élément puis on redirige vers la page « Index », sinon on permet l’édition (affichage des erreurs grâce à jQuery validate)

 

Repost 0
Published by Romagny13 - dans ASP.NET MVC
commenter cet article
14 mai 2014 3 14 /05 /mai /2014 00:50

Fiddler http://www.telerik.com/download/fiddler

Fiddler peut être bien pratique pour débugger ses sites .On peut filtrer « Show Only Intranet Hosts » on peut également utiliser composer  

fiddler.png

 

Ressources

http://www.devcurry.com/2013/03/debugging-your-aspnet-web-apis-with.html


Repost 0
Published by Romagny13 - dans ASP.NET MVC
commenter cet article
26 avril 2014 6 26 /04 /avril /2014 22:54

Visual Studio 2013 ne prend en charge MVC qu’à partir de la version 4 . 

http://msdn.microsoft.com/fr-fr/library/hh266747.aspx

 

  Upgrade de MVC2 vers MVC3 (ASP.NET MVC 3 Application Upgrader)

http://aspnet.codeplex.com/releases/view/59008

mvc2tomvc3.png

 

   Upgrade de MVC3 vers MVC4

Depuis Visual Studio 2013 .

Ouvrir la solution dont le projet MVC ne peut être chargé

… puis chercher « Auto upgrade mvc 3 to mvc4 » (ou simplement « upgrade mvc3 ») avec le gestionnaire de package NuGet

mvc2tomvc4.png

Il se peut qu’il faille ajouter une référence à « Microsoft.AspNet.Web.Optimization » depuis le gestionnaire de package NuGet ensuite .Cibler le Framework 4.0 peut aussi éviter des problèmes de versions de fichiers . 

 

 

 

Repost 0
Published by Romagny13 - dans ASP.NET MVC
commenter cet article
7 avril 2014 1 07 /04 /avril /2014 18:10

Facebook

  • Créer une application (Menu « Applications » > « Créer une application »)
  • Donner un nom à l’application (Display Name), le Namespace est optionnel
  • Il faut ensuite aller dans les paramètres « Ajouter une plateforme », entrer l’url de son site web (ou mobile)
  • Penser à relever  l’identifiant de l’application et la clé secrète qui seront à fournir dans le code.

 

 AuthConfig (dossier App_Start) méthode RegisterAuth()  

 OAuthWebSecurity.RegisterFacebookClient(appId: "1405131279758787", appSecret: "29d241112484c2fe570b154b2680a206");  

 

Twitter
 https://dev.twitter.com/ 
Marche de la même manière que Facebook

 

Google
Rien de particulier à faire ici à part dans AuthConfig retirer les commentaires
OAuthWebSecurity.RegisterGoogleClient();

 

 

Yahoo
OAuthWebSecurity.RegisterYahooClient();

 

 
 
 
Repost 0
Published by Romagny13 - dans ASP.NET MVC
commenter cet article
12 février 2014 3 12 /02 /février /2014 12:26

    Pour l’ajout et la modification :

  • [AcceptVerbs(HttpVerbs.Post)]
  • Vérification selon les contraintes, null, utilisation des expressions régulières pour vérifier le format (http://regexlib.com)
  • Si l’entrée n’est pas correcte on ajoute une erreur au ModelState :           ModelState.AddModelError("propriété", "texte à afficher à l’utilisateur");
  • On vérifie que le model ne contient pas d’erreur pour l’ajout en base de données  ModelState.IsValid  

 

Ajout
Je crée une méthode ValidateClient
        [AcceptVerbs(HttpVerbs.Post)]
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(Client client)
        {
            ValidateClient(client);
 
            if (ModelState.IsValid)
            {
                db.Clients.Add(client);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
 
            ViewBag.CategoryId = new SelectList(db.Categories, "Id", "Name", client.CategoryId);
            return View(client);
        }
        private void ValidateClient(Client client)
        {
            if (string.IsNullOrWhiteSpace(client.Name))
                ModelState.AddModelError("Name", "Nom requis.");
            if (!string.IsNullOrEmpty(client.Email))
                if (!Regex.IsMatch(client.Email, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"))
                    ModelState.AddModelError("Email", "Email non valide."); 
        }

 

Modification (c’est la même chose)
    [AcceptVerbs(HttpVerbs.Post)]
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(Client client)
        {
            ValidateClient(client);
 
            if (ModelState.IsValid)
            {
                db.Entry(client).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.CategoryId = new SelectList(db.Categories, "Id", "Name", client.CategoryId);
            return View(client);
        }

 

Il est également possible de définir le message à afficher dans la vue.
Exemple
@Html.ValidationMessage("Name", "Veuilez entrer votre nom. ")



Modifier le style des erreurs

Il est possible de modifier le style des erreurs affichées dans le fichier css
/* styles for validation helpers */
.field-validation-error {
    color: #e80c4d;
    font-weight: bold;
}
 
.field-validation-valid {
    display: none;
}
 
input.input-validation-error {
    border: 1px solid #e80c4d;
}
 
input[type="checkbox"].input-validation-error {
    border: 0 none;
}
 
.validation-summary-errors {
    color: #e80c4d;
    font-weight: bold;
    font-size: 1.1em;
}
 
.validation-summary-valid {
    display: none;
}
 
Si on veut ajouter un ValidationSummary à la page :
@Html.ValidationSummary()
Validation par attribut
Exemple dans la classe Client générée avec ADO.NET Entity Data Model
[Required(ErrorMessage = "Catégorie requise")]
public int CategoryId { get; set; }

     
da1          
       
Repost 0
Published by Romagny13 - dans ASP.NET MVC
commenter cet article