私は2つの関連するモデルを更新するフォームを作成しています。この例では、タスクのコレクションを持つプロジェクトは、フォーム入力から読み込まれたタスクコレクションを持つ単一のプロジェクトをコントローラが受け入れるようにします。私はこの作業、本質的に部分的なコードなしで以下のコードを持っています。モデルとViewDataDictionaryのasp mvc partial - ViewDataDictionaryにアクセスするにはどうすればよいですか?
これはばかげているかもしれませんが、部分からカウンタ(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
NOTE私は0をハードコーディングしています上記String.Formatの、私は呼び出しビューから変数iにバインドされているViewDataDictionaryパラメータを使用したい