使用viewbag值设置我的模型

时间:2014-01-29 20:05:15

标签: asp.net-mvc view model asp.net-mvc-5

在表单中我填充输出模型(将由控制器处理)。 一个值不是用户输入,它实际上是我将Viewbag注入此页面的上一页中的对​​象。 现在我想将此对象设置为我的一个模型属性(复杂对象),我正在寻找一种方法来实现它。 我遇到了

  @Html.HiddenFor(m =>

但我似乎无法理解如何在那里设置我的产品

2 个答案:

答案 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的值。