加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 将父ID添加到隐藏字段

发布时间:2020-12-16 07:23:39 所属栏目:asp.Net 来源:网络整理
导读:我在MVC / Razor / Entity Framework中苦苦挣扎. 我需要创建一个引用父对象的对象.我的模型中有一个名为ParentID的字段,但我无法弄清楚如何使用父ID来填充它. 我认为我的视图中需要一个隐藏字段,然后可能将ParentID放在ViewBag中,并将ViewBag属性指向隐藏字
我在MVC / Razor / Entity Framework中苦苦挣扎.

我需要创建一个引用父对象的对象.我的模型中有一个名为ParentID的字段,但我无法弄清楚如何使用父ID来填充它.

我认为我的视图中需要一个隐藏字段,然后可能将ParentID放在ViewBag中,并将ViewBag属性指向隐藏字段,但我似乎无法使其工作.

这样的事情是我的假设:

@Html.Hidden("BladeID",ViewBag.ParentBlade)

我不确定我是否已经很好地解释了自己,所以请你离开,我会扩展.

另外,我不确定我这样做是否正确.来自webforms的这对我来说都是全新的.

解决方法

如果ParentID已经在模型中,为什么不直接从那里填充隐藏字段?

@Html.Hidden("BladeID",Model.ParentID)

如果你真的想从ViewBag填充它,你将把它转换回int(假设它是ParentID的类型),因为ViewBag是dynamic类型:

@Html.Hidden("BladeID",(int)ViewBag.ParentBlade)

根据评论更新

如果您的视图依赖于两个(或更多)单独的模型类,则您始终可以选择为该视图创建自定义视图模型,例如:

public class ParentChildViewModel
{
    public Blade Parent { get; set; }
    public Blade Child { get; set; }
}

然后在视图中使用该类作为模型:

@model ParentChildViewModel
// more view code here
@Html.Hidden("BladeID",Model.Child.ParentID)

也就是说,在我看来,在这种情况下使用ViewBag并没有错,特别是如果你需要的只是一个属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读