我正在尝试根据控制器中的 if/else 条件为我的 viewbag 创建动态属性。视袋显示的内容将取决于我在控制器中的逻辑。在我看来,我尝试使用剃刀语法调用我的 viewbag,但没有任何东西呈现到页面。
[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);
}
我为视图包、消息和描述设置了两个属性。如果成功或失败,我会进行重定向。
@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>
}
在我的视图中,然后我调用我的 viewbag,但它没有渲染。我这样做不正确吗?
正如Hari所提到的,因为您正在重定向,所以您会丢失Viewbag数据。如果要在请求之间保留数据,请改用 TempData。本博客介绍了 TempData 应该用于什么目的。
如果可以放入视图模型中,请不要使用 ViewBag。Viewbag 只能用于在视图的同一页面上与他一起工作。
<div class="col ">
@{
string first = "DEPOSITED PAYMENTS";
string second = "PENDING FOR CLEARING";
string third = "PRINT C.R./ P.R";
string fourth = "CUSTOMER PAYMENTS CREDITS";
string descript = String.Format("{0} n {1} n {2} n {3}", first, second, third, fourth);
}
<a href="@Url.Action("Search", "PurchaseOrder", new { type = 2 })" class="text-decoration-none">
@Html.Action("_DashbordBoxInfo", "Dashboard", new { description = descript, status = 1, deptCode = "Sedam3" })
</a>
</div>
我试图在 viewbag.description 中格式化一个字符串,我想要逐行逐行 不起作用,当我渲染它时,它会将整个值读取为 1 个内联句子,我尝试在我的父卡中控制,但它没有任何帮助?