0

私は Umbraco 6 を使用しており、新しい MVC アーキテクチャを使用しています。インスタンス化され、コントローラーから設定されたプロパティを持つビューモデルを持つドキュメントタイプのビューテンプレートがあります。これらのプロパティの 1 つはコレクションです。ビュー テンプレートでは、コレクションを反復処理し、'Html.Partial("partialName", modelObject)' を使用して、別のビュー モデルで部分ビューをレンダリングします。

私が抱えている奇妙な問題は、まず、Visual Studio で、その名前の部分ビューを解決できないという ReSharper 警告が表示されることです (50 回確認し、スペルを正しくしました)。さらに、ページに移動すると、信頼できる古い「オブジェクト参照がオブジェクトのインスタンスに設定されていません」YSOD が表示されます。

コードをデバッグしたところ、コントローラー アクションは正常にヒットし、ドキュメント タイプ テンプレートのビュー モデルをインスタンス化するロジックは正常に動作し、プロパティが正しく設定されました。コレクション アイテムをレンダリングするためのループは、コレクション アイテムごとにビュー モデル オブジェクトを正しくインスタンス化し、プロパティを正しく設定します。Html.Partial に当たると壊れます。

ドキュメント タイプ ビュー コードは次のとおりです。

@foreach (KeyValuePair<decimal, IPublishedContent> result in Model.Results)
{
    PropertySearchResultViewModel model = ObjectMapper.SearchResultToViewModel(result);

    Html.RenderPartial("PropertySearchResultDesktop", model);
}

以下の部分ビュー コード:

@using Production.Umbraco.Extensions.Models.ViewModels;
@inherits UmbracoViewPage<PropertySearchResultViewModel>

<article id="property-result-@Model.Node.Id.ToLower()">

    <p>@Model.Node.Name</article>

    <p>Distance: @Model.Distance Miles</p>

</article>

これが私の VS ソリューション ツリーのスクリーンショットです。

Visual Studio ソリューションのスクリーンショット

'NewHomes.cshtml' ドキュメント タイプ ビュー テンプレートは NewHomesController から返され、ビューは Umbraco バック オフィスから作成され、自動的に配置された 'PropertySearchResultDesktop.cshtml' 部分ビューを呼び出しています。

Umbraco の Web サイトによると、ここに部分ビューを配置することができ、配置する必要があります。

http://our.umbraco.org/Documentation/Reference/Mvc/partial-views

しかし、私が何をしようとしても、パーシャルをレンダリングしません。SO でこれに関する別の質問を見たことがありますが、答えは代わりに MacroPartials に配置することでした.型付きモデルの宣言。MacroPartials にはありません。

誰もこれに遭遇したことがありますか?

4

1 に答える 1