【发布时间】:2011-02-01 16:28:01
【问题描述】:
我正在创建一个更新两个相关模型的表单,对于这个例子,一个包含任务集合的项目,我希望控制器接受一个项目,该项目的任务集合是从表单输入中加载的。我有这个工作,基本上下面的代码没有部分。
这听起来可能很傻,但我不知道如何从部分访问计数器 (i)?
型号
public class Project
{
public string Name { get; set; }
public List<Task> Tasks { get; set; }
}
public class Task
{
public string Name { get; set; }
public DateTime DueDate { get; set; }
}
Create.cshtml(视图)
@model MyWebApp.Models.Project
@using(Html.BeginForm("Create", "Project", FormMethod.Post, new { id = "project-form" }))
{
<div>
@Html.TextBox("Name", Model.Name)
</div>
@for(int i = 0; i < Model.Tasks.Count; i++)
{
@Html.Partial("_TaskForm", Model.Tasks[i], new ViewDataDictionary<int>(i))
}
}
_TaskForm.cshtml(部分视图)
@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
注意上面的 String.Format 我是硬编码 0,我想使用 ViewDataDictionary 参数,该参数绑定到来自调用 View 的变量 i
【问题讨论】:
标签: asp.net-mvc