C# 将字段从父视图模型传递到子(部分)视图MVC+;剃须刀

C# 将字段从父视图模型传递到子(部分)视图MVC+;剃须刀,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我有一个GroupPageViewModel它有一个公共字符串GroupName{get;}和一个服务方法EditGroupInputModel的输入模型,该服务方法也有一个公共字符串GroupName{get;set;} 在页面视图中,我想为Group呈现编辑器,一个laHtml.Partial(“~/Views/Group/\u EditGroup.cshtml”,?)或使用EditorFor 我希望\u EditGroup.cshtml的模型成为EditGroupInputModel,但它

我有一个
GroupPageViewModel
它有一个
公共字符串GroupName{get;}
和一个服务方法
EditGroupInputModel
的输入模型,该服务方法也有一个
公共字符串GroupName{get;set;}

在页面视图中,我想为
Group
呈现编辑器,一个la
Html.Partial(“~/Views/Group/\u EditGroup.cshtml”,?)
或使用
EditorFor

我希望
\u EditGroup.cshtml
模型
成为
EditGroupInputModel
,但它需要从父视图的
GroupName
属性了解
GroupName

我意识到我可以使用
Html.Partial(“~/Views/Group/_EditGroup.cshtml”,new EditGroupInputModel(){GroupName=Model.GroupName})
,但我觉得这在某种程度上偏离了MVC框架的意图(或者我只是没有看到这样的示例)


这是将此类参数传递给局部视图模型的“最佳实践”方法,还是MVC框架有更好的方法?

imho没有问题

Html.Partial("~/Views/Group/_EditGroup.cshtml", new EditGroupInputModel() { GroupName = Model.GroupName}) 
我通常在构造函数中传递父视图的模型,因此由子模型决定它需要什么:

视图:

EditGroupInputModel.cs:

EditGroupInputModel(GroupPageViewModel parentModel) 
{ 
    GroupName = parentModel.GroupName;
}

无法在EditGroupInputModel中创建ParentGroupName属性吗?然后您只需将模型传递给您的部分视图:Html.partial(“~/Views/Group/_EditGroup.cshtml”,model.EditGroupInputModel)@markpsmith,并不是每个
GroupPageViewModel
都应该有一个
EditGroupInputModel
(编辑只是您可以执行的众多操作中的一个,为了参数起见)啊,好的,我想我误解了在构建模型类时使用EditGroupInputModel.GroupName视图模型的
{get;set;}
属性。在集合中,您可以将this.GroupName=base.GroupName设置为类似以下内容。我不确定语法,但我知道您必须使用{get;set}
EditGroupInputModel(GroupPageViewModel parentModel) 
{ 
    GroupName = parentModel.GroupName;
}