在表单中我填充输出模型(将由控制器处理)。 一个值不是用户输入,它实际上是我将Viewbag注入此页面的上一页中的对象。 现在我想将此对象设置为我的一个模型属性(复杂对象),我正在寻找一种方法来实现它。 我遇到了
@Html.HiddenFor(m =>
但我似乎无法理解如何在那里设置我的产品
答案 0 :(得分:1)
根据我的理解,如果不使用模型,则无法使用HiddenFor
。
你可以尝试,
@Html.Hidden("FieldId", ViewBag.FieldId)
在控制器中访问它,如
public ActionResult Action(string FieldId)
{
//Do something
}
答案 1 :(得分:1)
如果该属性在ViewBag
对象中可用,则可以执行此操作。
public ActionResult Index()
{
var viewModel = new YourViewModelClass();
viewModel.Property = ViewBag.Property;
return View(viewModel);
}
[HttpPost]
public ActionResult Index(YourViewModel viewModel)
{
// viewModel.Property will contain the hidden input value.
}
查看强>
@Html.HiddenFor(m => m.Property);
这样,在将视频模型发回服务器时,您可以保留视图模型中ViewBag
的值。