3

私はこれらの厄介な問題の1つを抱えていますが、それは非常に単純ですが、それでも問題を見つけることができないようです。

私は単純な「テスト」コントローラーを持っています。コードは次のとおりです。

public class testController : Controller
{
    //
    // GET: /test/

    public ActionResult Index(int id)
    {
        ItemModel item = null;
        item = CommonLib.ReturnFullItem(id);

        return View("~/Views/Emails/ItemRecordedEmail", item);
    }

}

そして、 ItemRecordedEmail.cshtmlビューを含む/ Views / Emails/フォルダーがあります。しかし、次のエラーメッセージが表示されます。

ビュー'/Views / Emails / ItemRecordedEmail'またはそのマスターが見つからなかったか、検索された場所をサポートするビューエンジンがありません。次の場所が検索されました:/ Views / Emails / ItemRecordedEmail

ItemRecordedEmail.cshtmlを共有フォルダーに移動し、それに応じてコードを変更すると、すべてが正常に機能しているように見えます。私が間違っていることは何ですか?

編集:パスを' / Views/Emailsに変更しました。これは元のパスでした。すべての試行を行った後、誤って省略してしまいました。同じエラーメッセージでも同じ問題が発生しますが、今回は「〜/ Views/Emails」フォルダで検索されます。

4

4 に答える 4

10

チルダ構文を使用してビューへの完全なパスを提供する場合、ビューを検索するためのビューエンジンの内部ルックアップメカニズムをバイパスするため、ビューのファイル拡張子を指定する必要があります。だからそれは

return View("~/Views/Emails/ItemRecordedEmail.cshtml", item);

参照:Professional ASP.NET MVC 4

于 2013-02-14T09:35:27.817 に答える
3

グーグルの場合、ここに隠れている別の可能な修正があります:

https://stackoverflow.com/a/31345035/591097

ビューファイルのプロパティ[ビルドアクション]が[なし]ではなく[コンテンツ]に設定されていることを確認します。

于 2019-01-10T20:06:30.540 に答える
2

私はあなたがこのコードを使うつもりだったと思います:

public ActionResult Index(int id)
    {
        ItemModel item = null;
        item = CommonLib.ReturnFullItem(id);

        return View("ItemRecordedEmail", item);
    }

またはこれ:

public ActionResult Index(int id)
    {
        ItemModel item = null;
        item = CommonLib.ReturnFullItem(id);

        return View("~/Views/Emails/ItemRecordedEmail.cshtml", item);
    }

パスにビューを比較的追加する必要があります。そうすると、エリアのないパスの残りの部分が検索されarea/test/view.htmlますarea/shared/view.html。エラーメッセージに表示されるパスと同様に、このエラーメッセージで取得します。

編集:ビューがある場合はこれを使用してください

return View("~/Views/Emails/ItemRecordedEmail.cshtml", item);

または、部分的なビューがある場合:

return Partial("~/Views/Emails/ItemRecordedEmail.cshtml", item);
于 2013-02-14T08:27:01.350 に答える
0

この問題は、既存のビューをコピーして名前を変更したときに発生しました。MVCは新しいビューを見つけることができませんでした。最初にコピーして名前を変更したファイルを削除し、次に完全に新しいビューを追加して、既存のビューからコンテンツにコピーして貼り付けることで解決しました。

于 2020-11-26T16:18:04.083 に答える