次の行でクライアントを編集するためのビューがあります。
@Html.DisplayFor(x=>x.Orders)
初期化。ただし、Id プロパティの表示のみを出力し、他のプロパティは無視します。
public class Order
{
public int Id { get; set; }
[DisplayName("Order Header")]
public string Header { get; set; }
// ... etc...
}
一方、私は動作が次のようになることを期待しています:
オブジェクトに複数のプロパティが含まれている場合、プロパティごとに、メソッドはプロパティ名のマークアップとプロパティ値のマークアップで構成される文字列を生成します。MSDN
私は何を逃したのですか?
景色:
@model Models.Client
@{
ViewBag.Title = "Client Details";
}
<h2>@ViewBag.Title</h2>
<fieldset>
@Html.DisplayFor(x => x.Notes, "ListOfNotes")
</fieldset>
<fieldset>
@{ Html.RenderPartial("NewNoteForm", Model); }
</fieldset>
<fieldset>
@using(@Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="Save"/>
}
</fieldset>
<fieldset>
@Html.DisplayFor(x => x.Orders) @* The errant bit *@
</fieldset>
<fieldset>
@{ Html.RenderPartial("NewOrderForm", Model); }
</fieldset>
クライアント モデル:
public class Client
{
public Client(int PId, string title, string forename, string surname)
: this()
{
PId = pId;
Title = title;
Forename = forename;
Surname = surname;
}
public Client()
{
Notes = new List<Note>();
Orders= new List<Order>();
}
public int PId { get; set; }
public string Title { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public List<Note> Notes { get; private set; }
public List<Order> Orders { get; private set; }
}
ところで、メモのリストは期待どおりに表示されます。