我在 MVC/Razor/Entity Framework 方面有点挣扎。
我需要创建一个引用父对象的对象。我的模型中有一个字段,名为 ParentID,但我无法弄清楚如何使用父 ID 填充它。
我想我的 View 中需要一个隐藏字段,然后可能将 ParentID 放在 ViewBag 中,并将该 ViewBag 属性指向隐藏字段,但我似乎无法让它工作。
像这样的事情,是我的假设:
@Html.Hidden("BladeID", ViewBag.ParentBlade)
我不确定我是否已经很好地解释了自己,所以请提问,我会扩展。
另外,我不确定我是否以正确的方式执行此操作。这对我来说都是全新的,来自网络表单。
最佳答案
如果ParentID
已经在模型中,为什么不直接从那里填充隐藏字段?
@Html.Hidden("BladeID", Model.ParentID)
如果你真的想从
ViewBag
填充它你必须把它扔回 int
(假设这是 ParentID
的类型),因为 ViewBag
类型为 dynamic
:@Html.Hidden("BladeID", (int)ViewBag.ParentBlade)
根据评论更新
如果您的 View 依赖于两个(或更多)单独的模型类,您始终可以选择为该 View 创建自定义 View 模型,例如:
public class ParentChildViewModel
{
public Blade Parent { get; set; }
public Blade Child { get; set; }
}
然后在您的 View 中使用该类作为模型:
@model ParentChildViewModel
// more view code here
@Html.Hidden("BladeID", Model.Child.ParentID)
也就是说,在我看来,使用
ViewBag
没有错。在这种情况下,特别是如果您只需要一个属性。
关于asp.net-mvc - 将父 ID 添加到隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411060/