MVC3, le Rasoir à l'aide de viewbag dans le contrôleur et la vue

Je suis en train de créer des propriétés dynamiques pour mon viewbag basé sur un si/d'autre condition dans mon contrôleur. Ce que le viewbag affiche dépendra de ma logique dans le contrôleur. De mon point de vue, j'essaie d'appeler mon viewbag avec la syntaxe razor, mais rien ne nous rend à la page.

[HttpPost]
        public ActionResult EditUser(vw_UserManager_Model edituser)
        {
            UserManager.Models.vw_UserManager_Model model = edituser; 
            int outcome = 0;
                outcome = UserManager.DAL.EditUser(model);
                if (outcome == 1)
                {
                    ViewBag.Message = "Successfully edited user" + model.UserName;
                    ViewBag.Description = "Look below for full details.";
                    //ViewData["Message"] = "Successfully edited user" + model.UserName;
                    return RedirectToAction("showSuccess", model);
                }
                else
                {
                    ViewBag.Message = "Failure";
                    return RedirectToAction("showFailure", model);
                }
        }

#region successErrorHandling
        public ActionResult showError(List<string> ErrorMessage)
        {
            ViewBag.ErrorMessage = ErrorMessage[0];
            return View("ErrorMessageView");
        }

        public ActionResult showSuccess(vw_UserManager_Model model)
        {

            return View("SuccessMessageeView", model);
        }

J'ai mis deux propriétés pour viewbag, message et description. - Je faire une redirection en cas de succès ou de l'échec.

@model UserManager.Models.vw_UserManager_Model
<h2>@ViewBag.Message</h2>
<br />
<h4>@ViewBag.Description</h4>
<h2>
    SuccessMessageeView</h2>
<br />
User Created:
@using (Html.BeginForm())
{
    <ul>
        <li> <b>@Html.Label("Username:  ")</b>@Model.UserName</li>
        <li> <b>@Html.Label("Salutation:  ")</b>@Model.salutation</li>
        <li> <b>@Html.Label("Firstname:  ")</b>@Model.firstname</li>
        <li>  <b>@Html.Label("Lastname:  ")</b>@Model.lastname</li>
        <li> <b>@Html.Label("Email:  ")</b>@Model.email</li>
        <li> <b>@Html.Label("Group name:  ")</b>@Model.group_name</li>
        <li> <b>@Html.Label("Is active:  ")</b>@Model.isactive</li>
    </ul>
}

Dans mon point de vue, je puis appeler mon viewbag mais ne rend pas. Fais-je une erreur?

  • Vous perdez de l'état de l'ViewBag avec la redirection. Merci de poster votre showSuccess et showFailure actions (et le nom de votre point de vue), afin de pouvoir proposer une solution.
  • ok je vais modifier mon post.
  • Je pense que j'ai mis mon viewbag dans le mauvais ActionResult méthode. 🙁
  • Vous pouvez utiliser TempData au lieu de cela.. Il fonctionne vraiment, vous pouvez vous référer à ceci: dotnet-tricks.com/Tutorial/mvc/...
InformationsquelleAutor nick gowdy | 2012-11-20