C# 动态更改局部视图的数据,同时维护绑定到父视图/模型的代码

C# 动态更改局部视图的数据,同时维护绑定到父视图/模型的代码,c#,asp.net-mvc,asp.net-mvc-3,razor,asp.net-mvc-partialview,C#,Asp.net Mvc,Asp.net Mvc 3,Razor,Asp.net Mvc Partialview,我一直在绞尽脑汁想如何制作这样的页面。我的模型包含一个对象列表,其中包含不同语言的文本字段。视图中有一个点需要动态更改,以显示与下拉列表中所选语言关联的文本字段。文本字段还需要可编辑,以便在提交父表单时,在局部视图/模型中编辑后,文本字段需要正确保存在父模型中。在另一个页面中,我被暗示部分视图是我应该尝试做的,可能是关于以编程方式为列表中的每种语言生成部分视图,并根据下拉列表中的选择更新/呈现正确的部分视图 我最初的尝试使我尝试使用ajax调用控制器,根据下拉菜单的值返回正确的局部视图,但我无法

我一直在绞尽脑汁想如何制作这样的页面。我的模型包含一个对象列表,其中包含不同语言的文本字段。视图中有一个点需要动态更改,以显示与下拉列表中所选语言关联的文本字段。文本字段还需要可编辑,以便在提交父表单时,在局部视图/模型中编辑后,文本字段需要正确保存在父模型中。在另一个页面中,我被暗示部分视图是我应该尝试做的,可能是关于以编程方式为列表中的每种语言生成部分视图,并根据下拉列表中的选择更新/呈现正确的部分视图

我最初的尝试使我尝试使用ajax调用控制器,根据下拉菜单的值返回正确的局部视图,但我无法将其绑定到模型,因此在提交主视图表单时无法更新/保存它。到目前为止,我一直在做以下工作:

型号:

公共类编辑模型
{
公共列表文本字段列表;
公共列表显示列表
{
收到
{
列表模板列表=新建列表();
foreach(TextFieldList中的TextField a)
{
Add(a.Language.ToString()+“/”+a.Currency.ToString());
}
返回圣殿骑士;
}
}
}
控制器:

public ActionResult编辑文本字段(int-adId,int-index)
{
Ad=this.Repository.GetById(adId);
返回PartialView(“EditTextFields”,ad.TextFieldsList[index]);
}
主要观点:

@model Models.EditModel
$(函数(){
$(href('DisplayList')。更改(函数(){
var value=$(this.find(':selected').val();
var adId=GetId();
$.get('/Controllers/EditTextFields',“{\'adId\”:“+String(adId)+”,\“index\”:\“+value+”\”),函数(数据){
$('#TextFieldDiv').html(数据);
});
}));
});
@使用(Html.BeginForm(“编辑”、“小部件”、FormMethod.Post、新的{id=“WidgetEditForm”、enctype=“多部分/表单数据”}))
{
@DisplayFor(m=>m.DisplayList)
@{Html.RenderPartial(“EditTextFields”,(TextField)@Model.TextFieldList[0]);}
}
局部视图:

@model Objects.TextField
@使用(Html.BeginForm())
{
标题文字:
@EditorFor(m=>m.Headline)
@Html.ValidationMessageFor(m=>m.Headline)
副标题文字:
@Html.EditorFor(m=>m.SubHeadline)
@Html.ValidationMessageFor(m=>m.SubHeadline)
}
给我指出一个好方向的想法