2

次の行でクライアントを編集するためのビューがあります。

@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; }
}

ところで、メモのリストは期待どおりに表示されます。

4

2 に答える 2

1

現在のモデルの各プロパティを使用Html.DisplayForModel(o=>o)
または呼び出します。Html.DisplayFor()
このようなもの。

@Html.DisplayFor(model=>model.Id)
@Html.DisplayFor(model=>model.Header)
于 2013-10-28T13:15:30.950 に答える