ASP.NET MVC アプリケーションで、1 つのフォームで複数のオブジェクトを送信しようとしています。ポストバックする単純なタイプを取得できますが、複雑なタイプに問題があります。Phil Haack のブログ記事Model Binding To A Listで提供されている例を真似したような気がしますが、うまくいきませんでした。彼のコードを正確にコピーしても無駄です。
ProjectNum
オブジェクトのセットのおよびTaskNum
プロパティを入力しようとしていMachineLicenseBillback
ます。残念ながら、IList<MachineLicenseBillback> machinePts
は投稿されると常に null になります。
私は何が欠けていますか?
クラス
public class MachineLicenseBillback
{
public MachineLicenseBillback() { }
public virtual int MachineId { get; set; }
public virtual string ProjectNum { get; set; }
public virtual string TaskNum { get; set; }
public virtual string VerifiedFlag { get; set; }
public virtual DateTime? RcdChgDateTime { get; set; }
public virtual string RcdChgAgent { get; set; }
}
アクション
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TrueUp(int id, IList<MachineLicenseBillback> machinePts)
{
// ...
}
形
<% using (Html.BeginForm("TrueUp", "Home", new { id = Model.Customer.Id },
FormMethod.Post))
{ %>
<input type="hidden" name="machinePts.Index" value="<%= machine.MachineId %>" />
<input type="text" name="machinePts[<%= machine.MachineId%>].ProjectNum"
value="<%= machine.MachineLicenseBillback.ProjectNum %>" />
<input type="text" name="machinePts[<%= machine.MachineId %>].TaskNum"
value="<%= machine.MachineLicenseBillback.TaskNum %>" />
<input type="submit" value="Submit" />
<% } %>