我知道我可以使用ModelBinding来做到这一点,但我想知道我是否可以使用ViewBag
我在视图
中设置了ViewBag
属性
@{
ViewBag.WasPriorityCustomer = Model.PriorityCustomer == true;
}
非优先客户的用户可以更改为一个,但我需要知道他们是否是优先客户。
在控制器中
[HttpPost]
public ActionResult Save(MyModel model)
{
if (ViewBag.WasPriorityCustomer == false && model.PriorityCustomer == true)
{
//Thank you for becoming a priority customer
}
}
不幸的是ViewBag.WasPriorityCustomer
始终为空
答案 0 :(得分:3)
你只是试图以错误的方式做事:
您可以在操作中设置ViewBag
的值,并在生成的视图中使用它的值。
但是要从POST
操作中的视图中获取值,您应该使用隐藏的输入。
视图中的类似内容(未经测试):
@ {bool wasPriorityCustomer = Model.PriorityCustomer;}
@Html.Hidden("wasPriorityCustomer", wasPriorityCustomer)
和行动成为
[HttpPost]
public ActionResult Save(MyModel model, bool wasPriorityCustomer)
或者您可以更改ViewModel以包含“隐藏”值。
并使用@Html.HiddenFor(m => m.WasPriorityCustomer)
答案 1 :(得分:-1)
如果要在viewBag中存储某些值并希望在View中使用此ViewBag值,请尝试使用此代码。
模范行动
ViewBag.Test = ("NewTest");
在View中你可以写
@ViewBag.ProcedureTypeId
这样您就可以在ViewBag
Viewpage
值