5

私は非常に単純なシナリオを持っています。私のビューのモデルはリストです。

次のようにリストをループします

@foreach(CustomObject obj in Model)
{
Html.Partial("_TrackingCustomObject",obj)
}

したがって、リストによると、部分ビューの数があると予想していました。

それに応じて部分ビューが開発されました。

ページにエラーはありません。部分ビューで表示されるはずのデータが表示されないだけです。

データが表示されない理由は何ですか?

4

6 に答える 6

11

@ がありません:

@foreach(CustomObject obj in Model)
{
    @Html.Partial("_TrackingCustomObject", obj)
}

しかし、エディター/表示テンプレートを使用できるのに、なぜ foreach ループを作成するのでしょうか? このような:

@model IEnumerable<CustomObject>
@Html.EditorForModel()

~/Views/Shared/EditorTemplates/CustomObject.cshtml次に、モデルの各要素に対して自動的にレンダリングされる、対応するエディター テンプレート ( ) を定義するだけです。

@model CustomObject
<div>
    @Html.EditorFor(x => x.Foo)
</div>

シンプルで従来型 :-)

于 2012-07-13T17:28:26.557 に答える
0

少し遅くなりましたが、MVC4ではこれでうまくいきました。

 @foreach (var p in @Model.RelatedCards)
    {
        Html.RenderPartial("_ThumbPartial", p);
    }
于 2012-11-13T21:59:19.553 に答える
0

カミソリの記号がありません@:

@foreach(CustomObject obj in Model)
{
    @Html.Partial("_TrackingCustomObject",obj)
}

また、部分ビューがオブジェクト タイプをモデルとして使用していることを確認してください。CustomObject

@model MyProject.Models.CustomObject

<h1>Yeah we're in a partial! @Model.SomeProperty </h1>

エラーが発生した場所にドリルダウンするには、PartialView 内に静的テキストを配置してみてください。

<p>Some text</p>

コレクションに 10 個の項目がある場合、これらの段落が 10 個表示されます。次に、これが機能したら、各アイテムのいくつかのプロパティを表示することに焦点を当てます。

@model MyProject.Models.CustomObject

<p>Some text</p>
<p>@Model.SomeProperty</p>
于 2012-07-13T17:29:45.323 に答える
0

を使用して html フォームを作成する場合、残りの stuf を aまたは他のコンテナー@Html.BeginForm()内にラップする必要があります。そうしないと、html 要素がレンダリングされません。<div>

元。

これはうまくいきません

@using(Html.BeginForm())
{
  Html.EditorFor(m => m.Name)
}

これはうまくいきます

@using(Html.BeginForm())
{
   <div>    
      @Html.EditorFor(m => m.Name)
   </div>
}
于 2012-07-13T17:55:52.243 に答える
0

これを試してください

@Html.RenderPartial("_TrackingCustomObject",obj)
于 2012-07-13T17:23:11.677 に答える
-1

これは古すぎますが、誰かが使用できます。

@foreach(CustomObject obj in Model)
{
    <text>
        Html.Partial("_TrackingCustomObject",obj)
    </text>
}
于 2016-02-18T23:18:30.153 に答える