如何从视图中的viewBag为模型赋值

时间:2013-11-20 14:57:23

标签: c# asp.net-mvc

我的模型中有一个名为 extraValue 的字符串属性,在视图中我有一个带有值的 ViewBag ,我想在viewbag中指定Value到Model属性(extraValue)

我试过了:

@{Model.extraValue = ViewBag.id}

我在extraValue中得到了一个 null 值,我很确定ViewBag.id包含一个数字。

任何想法?

3 个答案:

答案 0 :(得分:5)

发布时无法从ViewBag中获取值。

ViewBag旨在提供一些有用的数据和accessible at rendering view only

如果您想要访问,则需要使用一些隐藏字段保留在视图中。

@{Model.extraValue = ViewBag.id}

@Html.HiddenFor(m=>m.extraValue).

现在您可以在控制器中获取extraValue,因为您在HiddenField的帮助下回发了

public ActionResult Save(Model model)
{
   var extra=model.extraValue;// this will bring your viewbag id assigned
}

答案 1 :(得分:0)

您最有可能在操作方法中设置ViewBag值。类似的东西:

ViewBag.id = idValue;

您还将模型传递给视图:

return View(myModel)

我建议您在控制器中设置extraValue属性,而不是在视图中设置:

myModel = idValue;
return View(myModel);

答案 2 :(得分:0)

您可以通过设置其名称'来使用隐藏类型输入。将属性作为模型变量来获取post方法的值。

<input type="hidden" name="extraValue" value="@ViewBag.id"/>