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

asp.net-mvc – 新手 – 将父视图和子视图合并到一个页面中

发布时间:2020-12-16 09:35:54 所属栏目:asp.Net 来源:网络整理
导读:我正在努力学习mvc – 我提前为所有愚蠢的问题道歉.我所做的是创建一个基于现有数据库的mvc proejct,然后我一直在试图理解为我创建了什么,以及如何创建我自己的东西.不幸的是,因为我是一个新的stackoverflow用户,我无法发布我的项目结构的图片. 我有一个父控
我正在努力学习mvc – 我提前为所有愚蠢的问题道歉.我所做的是创建一个基于现有数据库的mvc proejct,然后我一直在试图理解为我创建了什么,以及如何创建我自己的东西.不幸的是,因为我是一个新的stackoverflow用户,我无法发布我的项目结构的图片.
我有一个父控制器和一个子控制器使用向导创建基于我模型中的2个单独的表.我想在一个视图中显示它们 – 最终在webgrid中,并且能够更改任何父项或子项的数据.你现在可以忽略CombinedController.我一直在做一些阅读,并且我已经知道我应该创建一个视图模型,它将模型级别的父级和子级组合在一起,然后从那里开始.

所以我创建了这个类:

Imports System.Data.Objects.DataClasses
Public Class ParentAndChild

    Public Property myChildren As IEnumerable(Of Child)
    Public Property myParent as Parent

End Class

我有几个问题:

问题1
我是否必须将此ParentAndChild实体添加到.edmx文件中才能为其创建控制器和视图?我想我真正要问的是我是否必须首先在sql数据库中创建一个视图,让实体显示在.edmx然后创建一个控制器?或者我可以只在一个类中组合这两个实体?这就是我到目前为止所做的.我的数据库中没有结合这两个表的sql View.我问的原因是因为当我创建我的控制器时,如果我想免费获得所有CRUD,我必须使用实体框架创建.但我不知道要为数据上下文指定什么.

问题2
如果我想要一个webgrid以某种方式显示我的所有父母和他们所有的孩子,新的ParentAndChild课程会工作吗?我认为这只会显示一位父母及其子女的详细信息.我想我需要创建父母列表..然后在每个父母的父列表中添加一组模块.但我不知道该怎么做..

问题3
当我使用我的新类时,entityframework如何知道要返回哪些模块?我没有在任何地方定义关系…是因为在.edmx文件中,系统知道表之间的关系吗?

解决方法

如果您只需要访问父实体及其子实体的信息,您应该能够将您的视图发送给父实体.如果实体框架知道两个实体之间的关系,则ViewModel对此不是绝对必要的.如果两个表之间的关系存在于数据库级别,那么实体框架应该自动对其进行建模.

控制器的一个例子是:

public ActionResult Parent(int id)
{
    var parent = context.Foo.Single(x => x.Id == id);
    return View(parent);        
}

如果您需要创建一个包含所有子实体的表,您可以执行以下操作:

@foreach(var item in Model.Children)
{
    <td>@item.Property</td>
    <td>@item.Property2</td>
}

(编辑:李大同)

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

    推荐文章
      热点阅读