如何选择我的HttpPost的执行顺序

时间:2016-06-15 12:40:17

标签: c# asp.net-mvc

所以,我有一个带有两个HttpPost的控制器。

我的观点是这样的

  • 首先填写表格。

  • 然后按下提交(在提交时我的操作已启动,此操作应显示一些但是。

  • 当我按下时,控制器正在等待,因为模式弹出并且用户需要在其中放置一些信息。然后他会再按一个按钮将这些信息保存在数据库中。

  • 有错误。第一个控制器操作应该重定向页面,但它不会因为第二个控制器操作。

那么在我使用第二个动作的保存功能后,如何告诉控制器重放动作?

谢谢你的帮助!

这是我的控制器:

    [HttpPost]
    public ActionResult ModalContent(ParentModel model)
    {
        if (model != null)
        {
            UserInformationViewModel info = model.UserInformationViewModel;
            var client = new MongoClient("mongodb://localhost:27017");
            var objDatabase = client.GetDatabase("Test");
            var collection = objDatabase.GetCollection<BsonDocument>("UsersInformations");
            BsonDocument objDocument = new BsonDocument {
            {"Nom",info.NomUser},
            {"Prenom",info.PrenomUser},
            {"Email",info.EmailUser},
            {"Telephone",info.TelephoneUser},               
            };

            collection.InsertOne(objDocument);
        }

        return null;
    }

    [HttpPost]
    public ActionResult ActionNumber2(ParentModel parentViewModel)
    {
        if (parentViewModel != null)
        {
            List<ObjetTransfert> listeParentObjetsTransferts = new List<ObjetTransfert>();
            ActionNumber2 actionNumber2;
            ConvertParentModelToParentBd(parentViewModel, listeParentObjetsTransferts);
            _confidential.CCP(listeParentObjetsTransferts , out resultatC,
                Enums.E.T);

            //Enregistrer d'abord le resultat en Bd
            resultatC.IdentifiantRC = new Guid().ToString();
            _resultatCS.Create(resultatC);

            Session["ID"] = resultatC.Id;
            return View();
        }
        return null;
    }

1 个答案:

答案 0 :(得分:0)

所以,既然我对两个ActionResult使用相同的参数,我只需要这样做:

[HttpPost]
public ActionResult ActionNumber2(ParentModel parentViewModel)
{
    if (parentViewModel != null)
    {
        List<ObjetTransfert> listeParentObjetsTransferts = new List<ObjetTransfert>();
        ActionNumber2 actionNumber2;
        ConvertParentModelToParentBd(parentViewModel, listeParentObjetsTransferts);
        _confidential.CCP(listeParentObjetsTransferts , out resultatC,
            Enums.E.T);

        //Enregistrer d'abord le resultat en Bd
        resultatC.IdentifiantRC = new Guid().ToString();
        _resultatCS.Create(resultatC);

        Session["ID"] = resultatC.Id;

        UserInformationViewModel parentViewModel= parentViewModel.UserInformationViewModel;
        var client = new MongoClient("mongodb://localhost:27017");
        var objDatabase = client.GetDatabase("Test");
        var collection = objDatabase.GetCollection<BsonDocument>("UsersInformations");
        BsonDocument objDocument = new BsonDocument {
        {"Nom",info.NomUser},
        {"Prenom",info.PrenomUser},
        {"Email",info.EmailUser},
        {"Telephone",info.TelephoneUser},               
        };

        collection.InsertOne(objDocument);
        return View();
    }
    return null;
}

将所有内容放在同一个操作中,因为我的视图同时包含Html.BeginForm。

简单。