1

我知道我可以使用 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的是始终为空

4

2 回答 2

3

您只是尝试以错误的方式做事:

您可以ViewBag在操作中设置 a 的值,并在生成的视图中使用它的值。

但是要从POST操作中的视图中获取值,您应该使用隐藏输入。

视图中的类似内容(未经测试):

@ {bool wasPriorityCustomer = Model.PriorityCustomer;}

@Html.Hidden("wasPriorityCustomer", wasPriorityCustomer)

和行动变成

[HttpPost]
public ActionResult Save(MyModel model, bool wasPriorityCustomer)

或者您可以更改您的 ViewModel 以包含“隐藏”值。

并使用@Html.HiddenFor(m => m.WasPriorityCustomer)

于 2012-08-31T21:12:52.130 回答
-1

如果您想在 viewBag 中存储一些值并想在 View 中的这个 ViewBag 值中使用,请尝试此代码。

在模型动作中

ViewBag.Test = ("NewTest");

在视图中你可以写

@ViewBag.ProcedureTypeId

这样你就可以拥有ViewBag价值Viewpage

于 2012-09-04T09:48:21.587 回答