2

コントローラーの if/else 条件に基づいてビューバッグの動的プロパティを作成しようとしています。ビューバッグに表示される内容は、コントローラーのロジックによって異なります。私の見解では、カミソリ構文でビューバッグを呼び出そうとしましたが、ページに何もレンダリングされません。

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

ビューバッグ、メッセージ、および説明の 2 つのプロパティを設定します。成功または失敗した場合、リダイレクトを行います。

@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>
}

私のビューでは、ビューバッグを呼び出しますが、レンダリングされません。私はこれを間違ってやっていますか?

4

2 に答える 2

5

Hariが述べたように、リダイレクトしているため、ビューバッグデータが失われます。リクエスト間でデータを永続化する場合は、代わりにTempDataを使用してくださいこのブログでは、TempDataの用途について説明しています。

于 2012-11-20T17:35:42.637 に答える
0

ビューモデルに入れられる場合は、ViewBag を使用しないでください。Viewbag は、ビューの同じページで彼と一緒に作業する場合にのみ使用してください。

于 2012-11-20T16:30:24.727 に答える