我的模型中有一个名为 extraValue 的字符串属性,在视图中我有一个带有值的 ViewBag ,我想在viewbag中指定Value到Model属性(extraValue)
我试过了:
@{Model.extraValue = ViewBag.id}
我在extraValue中得到了一个 null 值,我很确定ViewBag.id包含一个数字。
任何想法?
答案 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"/>