0

私のコントローラーには、次のような2つのメソッドがあります。

 public ActionResult NouvelleDemande()
    {

        int NumDossier = StructureData.DonneNumDossier((string)Session["Utilisateur"], (string)Session["MotDePasse"]);
        List<Contact> ListeContacts = StructureData.DonneListeContact(NumDossier);
        if (ListeContacts != null)
        { ViewBag.ListeContacts = ListeContacts; }
        else
        { ViewBag.ListeContacts = null; }
        return View();
    }

    public ActionResult NouvelleDemande(DemandeAssistance nouvelleDemande)
    {
        bool DemandeEnregistree = nouvelleDemande.EnregistrerDemande();
        if (DemandeEnregistree)
        { 
            return Index();
        }
        else
        {
            ViewBag.Error = "La demande n'a pas été enregistrée !";
            return View();
        }
    }

そのため、メソッドに関連付けられた view() を表示したいだけの場合は、最初のビューを呼び出します。view() には、送信時にオブジェクトDemandeAssistanceを 2 番目のメソッドに送信するフォームがあります。ルート構成で、私はそれをしました:

routes.MapRoute(
            name: "NouvelleDemande",
            url: "{controller}/{action}",
            defaults: new { controller = "Accueil", action = "NouvelleDemande" }
        );

        routes.MapRoute(
            name: "AjouterNouvelleDemande",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Accueil", action = "NouvelleDemande", id = UrlParameter.Optional }
        );

しかし、これら2つのルートの間に誤解があるというビューを表示したいだけの場合、エラーが表示されます。私は何を間違えましたか?

4

1 に答える 1

0

理由がよくわからなくても、何が欠けていたのかを見つけることができます。私はちょうどそれを入れました:

// POST : /Accueil/NouvelleDemande
    [HttpPost]

パラメータを含むメソッドでは、次のようになります。

// POST : /Accueil/NouvelleDemande
    [HttpPost]
    public ActionResult NouvelleDemande(DemandeAssistance nouvelleDemande)
    {
        bool DemandeEnregistree = nouvelleDemande.EnregistrerDemande();
        if (DemandeEnregistree)
        { 
            return Index();
        }
        else
        {
            ViewBag.Error = "La demande n'a pas été enregistrée !";
            return View();
        }
    }

たぶん、興味のある人は、なぜそれが実際に機能するのかを説明する時間があるでしょう.

于 2013-08-08T13:21:27.133 に答える