0

在我的控制器中,我有两种这样的方法:

 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发送到第二种方法。在路线配置中,我这样做了:

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 }
        );

但是当我只想显示视图说这两条路线之间存在误解时,它会向我显示一个错误。我做错了什么 ?

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 回答