Nic*_*lai 4 asp.net-mvc entity-framework razor
我在MVC/Razor/Entity Framework中苦苦挣扎.
我需要创建一个引用父对象的对象.我的模型中有一个名为ParentID的字段,但我无法弄清楚如何用父母的ID填充它.
我认为我的视图中需要一个隐藏字段,然后可能将ParentID放在ViewBag中,并将ViewBag属性指向隐藏字段,但我似乎无法使其工作.
这样的事情是我的假设:
@Html.Hidden("BladeID", ViewBag.ParentBlade)
Run Code Online (Sandbox Code Playgroud)
我不确定我是否已经很好地解释了自己,所以请你离开,我会扩展.
另外,我不确定我这样做是否正确.来自webforms的这对我来说都是全新的.
如果ParentID已经在模型中,为什么不直接从那里填充隐藏字段?
@Html.Hidden("BladeID", Model.ParentID)
Run Code Online (Sandbox Code Playgroud)
如果你真的想要填充它,ViewBag你将把它重新投入int(假设它的类型ParentID),因为它ViewBag是类型dynamic:
@Html.Hidden("BladeID", (int)ViewBag.ParentBlade)
Run Code Online (Sandbox Code Playgroud)
根据评论更新
如果您的视图依赖于两个(或更多)单独的模型类,则您始终可以选择为该视图创建自定义视图模型,例如:
public class ParentChildViewModel
{
public Blade Parent { get; set; }
public Blade Child { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在视图中使用该类作为模型:
@model ParentChildViewModel
// more view code here
@Html.Hidden("BladeID", Model.Child.ParentID)
Run Code Online (Sandbox Code Playgroud)
也就是说,在我看来,ViewBag在这种情况下使用是没有错的,特别是如果你需要的只是一个属性.
| 归档时间: |
|
| 查看次数: |
3653 次 |
| 最近记录: |