2

私は非常に単純なことをしようとしていますが、何かが欠けているようです。私はインターネットで結果を調べようとしましたが、どこにも行きませんでした.

MVC アプリケーションが動作しており、デフォルト (足場) を使用してモデル、コントローラー、ビューを作成しました。

ここで、コントローラー アクションの 1 つに新しいビューを作成します。

public ActionResult Index()
        {
            return View(db.Blog.ToList());
        }

[Action Result] を右クリックし、[Add View] をクリックします。これにより、"Test" というビュー名を指定するダイアログ ボックスが表示されます。[Create a Strongly Typed View] チェック ボックスをクリックし、Blog のモデル クラスを選択します。scaffold テンプレートについては、空のままにします (インデックスを試してみましたが、良い結果が得られなかったことに注意してください)。ここで、[追加] ボタンをクリックします。

予想どおり、Views/Blogs の下に新しいビュー test.cshtml が作成されます。

今、デバッグせずに開始し、URL に移動すると: localhost:12341/Blog/Test

次のエラーが表示されます。

「/」アプリケーションでサーバー エラーが発生しました。

リソースが見つかりません。説明: HTTP 404。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。

要求された URL: /Blog/test


バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.17929

4

2 に答える 2

4

なぜそれが機能しないのかについては、多くの問題がある可能性があります。ASP.NET MVC ルーティングについて調べることは、おそらく価値のあることです。今のところ、他のすべてがデフォルトに設定されていると仮定すると、Mystere Man のソリューションは「迅速な修正」になる可能性があります。

特に、ブラウザーに移動するように指示するlocalhost:12341/Blog/Testと、(おそらく) 呼び出されたコントローラーが検索されBlogController、アクションが実行されTestます。あなたの場合、あなたのアクションが呼び出されるIndexので、行きたいと思うでしょうlocalhost:12341/Blog/Index(ただし、それはデフォルトのアクションなので省略できるかもしれませんIndex)。最後に、アクションが呼び出されるとIndexView()関数は自動的に を探しますIndex.cshtml。これは、msdn のドキュメントで多少詳しく説明されています。

http://msdn.microsoft.com/en-us/library/dd492930(v=vs.100).aspx

特に:

ViewName プロパティが空の場合、現在のアクション名が ViewName プロパティの代わりに使用されます。

于 2012-10-01T04:52:16.083 に答える
3

アクションメソッドは、テストではなくインデックスと呼ばれます。URLを/Testにする場合は、アクションメソッドにTestという名前を付ける必要があります(他の方法もありますが、これが最善の方法です)

ビューテストを使用する場合は、View()メソッドで指定する必要があります。

return View("Test", db.Blogs.ToList());

ただし、アクションメソッドはインデックスであるため、インデックスURL / Blogs/Indexを使用する必要があります。

于 2012-10-01T01:21:25.550 に答える