IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

ASP.NET MVC avec XML


Sujet :

ASP.NET MVC

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 36
    Points
    36
    Par défaut ASP.NET MVC avec XML
    Bonjour à tous,

    Actuellement développant un site en ASP.NET avec MVC 1.0, je souhaite utiliser des feuilles XML.

    J'ai inséré un formulaire dans ma vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    <tr>
    <td style="width: 100px">
    Name:</td>
    <td style="width: 100px">
    <asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
    </tr>
    ...
    Comment fait-on pour récupérer les données et les utiliser dans le controleur s'il vous plait en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected void Page_Load(object sender, EventArgs e)
    protected void Button1_Click(object sender, EventArgs e)
    void BindData()
    Merci d'avance pour votre aide

  2. #2
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Je crois que tu mélanges le mécanisme de ta page aspx avec le modèle mvc.

    Si tu veux faire du MVC, tes appels ne doivent pas se faire sur la page mais sur un contrôleur. A toi donc dans ta vue, de placer une balise form avec comme action une adresse pour mapper le contrôleur et l'action de ce contrôleur qui t'intéressent. Ainsi, tu pourra récupérer les informations que tu post à ton serveur depuis ton formulaire.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 36
    Points
    36
    Par défaut
    Désolé de demander cela, mais je débute vraiment en ASP.NET MVC, et j'ai déjà du mal à comprendre l'ASP tout court ^^

    J'ai effectivement placé mon formulaire sur ma page .aspx qui est une vue possédant une Page Master. Voici le bouton de Submit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" />
    Ce que je ne comprends pas en réalité, c'est que j'ai un controleur qui controle mes vues, qui commence par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    using System.Xml;
    using System.Data;
    using System.Configuration;
    using System.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
     
    namespace Projet.Controllers
    {
     
        public class ProjetController : Controller
        {
            // GET: /ProjetHome/
            public ActionResult Index()
            {
                return View();
            }
     
            public ActionResult Team()
            {
                return View();
            }
     
            public ActionResult Contact()
            {
                return View();
            }
     
            ...
    }
    Ce que je ne comprends pas, c'est où on peut gérer les résultats de mon formulaire. Je ne comprends pas où insérer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    BindData();
    }
     
    protected void Button1_Click(object sender, EventArgs e)
    {
    // Open the XML doc
    System.Xml.XmlDocument myXmlDocument = new System.Xml.XmlDocument();
    myXmlDocument.Load(Server.MapPath("guestbook.xml"));
    System.Xml.XmlNode myXmlNode = myXmlDocument.DocumentElement.FirstChild;
     
    // Create new XML element and populate its attributes
    System.Xml.XmlElement myXmlElement = myXmlDocument.CreateElement("entry");
    myXmlElement.SetAttribute("name", Server.HtmlEncode(txtName.Text));
    myXmlElement.SetAttribute("email", Server.HtmlEncode(txtEmail.Text));
    myXmlElement.SetAttribute("location", Server.HtmlEncode(txtLocation.Text));
    myXmlElement.SetAttribute("date", DateTime.Now.ToString());
    myXmlElement.InnerText = Server.HtmlEncode(txtComments.Text);
     
    // Insert data into the XML doc and save
    myXmlDocument.DocumentElement.InsertBefore(myXmlElement, myXmlNode);
    myXmlDocument.Save(Server.MapPath("guestbook.xml"));
     
    // Re-bind data since the doc has been added to
    BindData();
    }
     
    void BindData()
    {
    XmlTextReader myXmlReader = new XmlTextReader(Server.MapPath("guestbook.xml"));
    DataSet myDataSet = new DataSet();
    myDataSet.ReadXml(myXmlReader);
    myXmlReader.Close();
     
    Guestbook.DataSource = myDataSet.Tables[0];
    Guestbook.DataBind();
    }
    }

    Merci d'avance pour votre aide

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Ce que je ne comprends pas, c'est où on peut gérer les résultats de mon formulaire. Je ne comprends pas où insérer :
    Je te conseille de commencer par jeter un oeil dans la section des nombreux tutos qu'on à traduit l'an dernier :
    http://dotnet.developpez.com/mvc

    Comme disait Arthis, tu mélanges les deux modèles.

    En MVC, ton bouton Bouton1 n'appelle pas un événement dans le code-behind, mais une action dans le controlleur, par exemple, tu pourrais avoir une action AddInGuestBook, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public ActionResult AddInGuestBook()
    {
     
    // Open the XML doc
    System.Xml.XmlDocument myXmlDocument = new System.Xml.XmlDocument();
    myXmlDocument.Load(Server.MapPath("guestbook.xml"));
    System.Xml.XmlNode myXmlNode = myXmlDocument.DocumentElement.FirstChild;
     
    // Create new XML element and populate its attributes
    System.Xml.XmlElement myXmlElement = myXmlDocument.CreateElement("entry");
    myXmlElement.SetAttribute("name", Server.HtmlEncode(txtName.Text));
    myXmlElement.SetAttribute("email", Server.HtmlEncode(txtEmail.Text));
    myXmlElement.SetAttribute("location", Server.HtmlEncode(txtLocation.Text));
    myXmlElement.SetAttribute("date", DateTime.Now.ToString());
    myXmlElement.InnerText = Server.HtmlEncode(txtComments.Text);
     
    // Insert data into the XML doc and save
    myXmlDocument.DocumentElement.InsertBefore(myXmlElement, myXmlNode);
    myXmlDocument.Save(Server.MapPath("guestbook.xml"));
     
    RedirectToAction(new {controller="ProjetController ", action="index"});
    }
    et, pour afficher tes données, tu crées une action index dans projectController, qui renvoies à la vue ton dataset, qui à ensuite la responsabilité de lier les données à tes controles.

    Si ce n'est pas clair, essaye de commencer par suivre les premiers tutos, et deja de comprendre le modèle

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/04/2015, 09h48
  2. utilisation de ckeditor dans asp.net mvc avec razor
    Par thor76160 dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 24/12/2011, 10h34
  3. ASP.NET MVC avec Visual studio 2008, impossible!
    Par tresorunikin dans le forum ASP.NET
    Réponses: 5
    Dernier message: 30/10/2009, 02h41
  4. Réponses: 2
    Dernier message: 21/09/2009, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo