Asp.net mvc asp mvc部分模型和ViewDataDictionary-如何访问ViewDataDictionary?

Asp.net mvc asp mvc部分模型和ViewDataDictionary-如何访问ViewDataDictionary?,asp.net-mvc,Asp.net Mvc,我正在创建一个更新两个相关模型的表单,例如一个包含任务集合的项目,我希望控制器接受一个从表单输入加载其任务集合的项目。我有这个工作,基本上下面的代码没有部分 这听起来可能很傻,但我不知道如何从partial中访问计数器(I) 模型 公共类项目 { 公共字符串名称{get;set;} 公共列表任务{get;set;} } 公开课任务 { 公共字符串名称{get;set;} 公共日期时间DueDate{get;set;} } Create.cshtml(视图) @model MyWebApp.Mo

我正在创建一个更新两个相关模型的表单,例如一个包含任务集合的项目,我希望控制器接受一个从表单输入加载其任务集合的项目。我有这个工作,基本上下面的代码没有部分

这听起来可能很傻,但我不知道如何从partial中访问计数器(I)

模型

公共类项目
{
公共字符串名称{get;set;}
公共列表任务{get;set;}
}
公开课任务
{
公共字符串名称{get;set;}
公共日期时间DueDate{get;set;}
}
Create.cshtml(视图)

@model MyWebApp.Models.Project
@使用(Html.BeginForm(“Create”、“Project”、FormMethod.Post、new{id=“Project form”}))
{
@文本框(“名称”,Model.Name)
@对于(int i=0;i
_TaskForm.cshtml(局部视图)

@model MyWebApp.Models.Task
@TextBox(String.Format(“Tasks[{0}].Name”,0),Model.Name)

我想我发得太快了。这条线有我想要的答案

我最终使用了这种简洁的语法

@Html.Partial("_TaskForm", Model.Tasks[i], new ViewDataDictionary { {"counter", i} } )
然后在局部视图中

@model MyWebApp.Models.Task

<div>
    @Html.TextBox(String.Format("Tasks[{0}].Name", 0), Model.Name)
</div
<div>
    @Html.TextBox(String.Format("Tasks[{0}].DueDate", 0), Model.DueDate)
</div
@model MyWebApp.Models.Task
@{
    int index = Convert.ToInt32(ViewData["counter"]);
}

<div>
    @Html.TextBox(String.Format("Tasks[{0}].Name", index), Model.Name)
</div>
<div>
    @Html.TextBox(String.Format("Tasks[{0}].DueDate", index), Model.DueDate)
</div>
@model MyWebApp.Models.Task
@{
int index=Convert.ToInt32(ViewData[“计数器]);
}
@TextBox(String.Format(“Tasks[{0}].Name”,index),Model.Name)
@TextBox(String.Format(“任务[{0}].DueDate”,索引),Model.DueDate)
@Html.Partial("_TaskForm", Model.Tasks[i], new ViewDataDictionary { {"counter", i} } )
@model MyWebApp.Models.Task
@{
    int index = Convert.ToInt32(ViewData["counter"]);
}

<div>
    @Html.TextBox(String.Format("Tasks[{0}].Name", index), Model.Name)
</div>
<div>
    @Html.TextBox(String.Format("Tasks[{0}].DueDate", index), Model.DueDate)
</div>