View.csthml
<table>
  <tr>
    <th>@Html.DisplayNameFor(model => model.FirstName)</th>
    <td>@Html.DisplayFor(model => model.FirstName)</td>
  </tr>
  <tr>
    <th>@Html.DisplayNameFor(model => model.LastName)</th>
    <td>@Html.DisplayFor(model => model.LastName)</td>
  </tr>
  ・・・

</table>

上記のように、モデルの各プロパティの表示名とデータ値を table に表示するページがあります。

<tr>
  <th>@Html.DisplayNameFor(プロパティ)</th>
  <td>@Html.DisplayFor(プロパティ)</td>
</tr>

の部分は定型なので、部分ビューにして、

_Partial.csthml
@model object
<tr>
  <th>@Html.DisplayNameFor(model => model)</th>
  <td>@Html.DisplayFor(model => model)</td>
</tr>

本体のページを

View.csthml
<table>
  @Html.Partial("_Partial", Model.FirstName)
  @Html.Partial("_Partial", Model.LastName)
  ・・・

</table>

に変更してみたのですが

・表示名が表示されない
・データ値は表示されるが、モデルのプロパティに指定した DisplayFormat が効いていない

という状態です。

DisplayNameFor、DisplayForを毎回記述せずに1行にまとめられれば、どのような方法でも良いのですが、どのような解決策があるでしょうか?