2

「ユーザー」が存在するプライマリ ビューから RenderPartial を呼び出しています。

@{Html.RenderPartial("DisplayTemplates/uInfo", user);}

私の開発マシンでは動作しますが、本番サーバーはそのランタイムエラーを投げています:

部分ビュー 'DisplayTemplates/uInfo' が見つからないか、検索された場所をサポートするビュー エンジンがありません。次の場所が検索されました: ...

次の場所が検索されました。

~/Views/Account/DisplayTemplates/uInfo.aspx
~/Views/Account/DisplayTemplates/uInfo.ascx
~/Views/Shared/DisplayTemplates/uInfo.aspx
~/Views/Shared/DisplayTemplates/uInfo.ascx
~/Views/Account/DisplayTemplates/uInfo.cshtml
~/Views/Account/DisplayTemplates/uInfo.vbhtml
~/Views/Shared/DisplayTemplates/uInfo.cshtml
~/Views/Shared/DisplayTemplates/uInfo.vbhtml

私のファイルはリストされています - Shared/DisplayTemplates/uInfo.cshtml で、ローカルで動作します。

関連する場合に備えて、Razor ビューと従来の .aspx ビューを自由に切り替えています。最初は、この 2 つが混在することによる合併症の可能性を心配していましたが、この時点まで、私が試したことはすべてうまくいきました。

どうも

4

1 に答える 1

0

そうではありませんか:

@Html.DisplayFor(model => model.User)

のタイプが の場合model.UseruInfoMVC はデフォルトでDisplayTemplatesフォルダーを検索して を見つけますuInfo.cshtml。それが、現在の MVC 規則です。

で表示テンプレートをレンダリングしないでくださいRenderPartial

部分的なビューが必要な場合は、次のようにします。

@Html.Partial("SomePartial", user)

それでも、私はあなたが見ている振る舞いが奇妙であり、これはあなたの質問に実際には答えないことに同意しますが、何よりもまずMVCの慣習に従うようにしてください.

于 2011-04-11T23:42:58.203 に答える