0

私はテーブル名情報を持っています。強く型付けされたこのテーブルの部分ビューを作成したいと考えています。View/Shared の私の部分的なビューは、次のような _InfoView.cshtl です。

 @model IEnumerable<RealTest.Models.ifo>

  <h2>_InfoView</h2>

 <p>
 @Html.ActionLink("Create New", "Create")
 </p>
  <table>
      <tr>
         <th>
           name
       </th>
      <th>
         address
       </th>
       <th></th>
    </tr>

 @foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.address)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.id }) |
        @Html.ActionLink("Details", "Details", new { id=item.id }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.id })
    </td>
   </tr>
 }

私のビューページは次のようなものです: @model IEnumerable

 @{
  ViewBag.Title = "Index";
}
 <p>
   @Html.ActionLink("Create New", "Create")
  </p>

   @Html.Partial("_InfoView")

今度は、強く型付けされた別のビューから呼び出したいと思います。私がそれを呼び出したとき、部分ビューに必要なデータを取得できなかったようです.今、部分ビューデータをどのように渡す必要がありますか???

4

2 に答える 2

0

このように呼び出すことができます

@Html.Partial("ProdItemColors",Model.PropertyName)

たとえば、次のようなタイプの Collection プロパティを持つ がViewModel呼び出された場合CustomerInfo

public class Customer
{
  public string CustomerName { set;get;}
  public IList<Info> InfoItems { set;get;}

  public Customer()
  {
      InfoItems=new List<Info>();
  }
}
public class Info()
{
  public string Name { set;get;}
}

クラスにバインドされているメインビューからCustomer、次のように呼び出すことができます

@model Customer
<p>@Model.CustomerName </p>
@Html.Partial("_InfoView",Model.InfoItems)

~/Views/Sharedフォルダーまたはフォルダーに _InfoView.cshtml というビューがあるとし~/Views/YourcontrollerNameます。

部分ビューが Info クラスにバインドされていることを確認してください

@model IEnumerable<Info>
<p>do something inside this</p>
于 2012-08-02T14:38:55.860 に答える
0
@{Html.RenderPartial("is _InfoView", model);}

モデルは ifo オブジェクトのコレクションである必要があります。

于 2012-08-02T14:28:15.310 に答える