Razor 使用ASP.NET MVC 5添加相关数据

Razor 使用ASP.NET MVC 5添加相关数据,razor,asp.net-mvc-5,Razor,Asp.net Mvc 5,你好 我正在创建一个带有MVC5和Razor视图的ASP.Net站点。我有一个父类和一个子类,这样一个父类可以有多个子类。我首先使用的是EF代码,在项目的models文件夹中有我的2个模型和我的DB上下文。我为两者都创建了脚手架项目 我所做的是关于父母的细节,我有一个孩子的列表,使用部分视图。我想做的是从父详细信息中,如果单击“新建子对象”操作链接,则会显示“为子对象创建”操作,其中父对象ID已选中且不可编辑 实现这一点的最佳方式是什么?我是否需要将数据传递给控制器或ViewBag?我不知道这种

你好

我正在创建一个带有MVC5和Razor视图的ASP.Net站点。我有一个父类和一个子类,这样一个父类可以有多个子类。我首先使用的是EF代码,在项目的models文件夹中有我的2个模型和我的DB上下文。我为两者都创建了脚手架项目

我所做的是关于父母的细节,我有一个孩子的列表,使用部分视图。我想做的是从父详细信息中,如果单击“新建子对象”操作链接,则会显示“为子对象创建”操作,其中父对象ID已选中且不可编辑

实现这一点的最佳方式是什么?我是否需要将数据传递给控制器或ViewBag?我不知道这种布局/功能的正确术语是什么(主详细视图?)


我也访问过ASP.net网站,但找不到我要查找的内容。

您可以使用操作链接将父Id传递给创建操作。可能是这样的,其中“item”是本地父变量的名称:

@Html.ActionLink("New Child", "Create", new { id = item.Id }) 

然后,您的创建操作可以将其传递给“创建”视图中的表单

太棒了,谢谢。实际上,我最终使用了RouteValuesDictionary,并且我还需要传递一些更多的信息:
@{var routeValues=new RouteValueDictionary();routeValues.Add(“ParentId”,Model.ParentId);routeValues.Add(“姓氏”,Model.姓氏);}@Html.ActionLink(“New Child”,“Create”,routeValues)
不管它值多少钱,我想你也可以把它内联起来,比如:
@Html.ActionLink(“New Child”,“Create”,New{ParentId=Model.ParentId,姓氏=Model.姓氏})