3

から取得index.cshtml

@model MvcMovie.Models.Movie

@{
    ViewBag.Title = "Details";
}

<h2>Details</h2>

<fieldset>
    <legend>Movie</legend>

    <div class="display-label">

Visual Studio の MVC テンプレートが ViewBag.Title を対応するコントローラーではなくビューに設定するのはなぜですか?

私の意見では、設定はコントローラーで行い、取得はビューで行う必要があります。どう思いますか?

4

3 に答える 3

7

の値がViewBag.Titleレイアウト ファイル \Views\Shared\_Layout.cshtml で使用されるためです。

<title>@ViewBag.Title</title>
于 2013-06-18T13:06:28.913 に答える
4

Fabio Sの答えを拡張するには - これ<title>はプレゼンテーションの概念だからです。コントローラー (またはビジネス ロジック) で設定を行い、ビューで実行することは良いガイドだと思いますが、より重要なのは、ビューがプレゼンテーションに関与し、コントローラーがビューとビューの間の制御および仲介者になることです。モデルとビジネス ロジック。最終的な HTML ページのタイトルがどこに設定されているかを確認したい場合は、タイトルをプレゼンテーションの概念と考えているため、コントローラーではなくビューを参照する方が直感的です。

于 2014-01-08T21:04:36.497 に答える
0

どのアクションメソッドがどのビューを返すかを決めるのはコーダーです..そのため、コントローラーまたはアクションメソッドはJSONオブジェクトまたはHTTPResponseCodeを返すだけかもしれません。その場合、コントローラーまたはアクションメソッド内でタイトルを設定しても意味がありません..

エンティティを作成するビューで Create と表示するのではなく、アクション メソッドとコントローラーに依存する Create と言いたい場合があるため、最終的にはプレゼンテーションです。

于 2013-06-15T12:55:46.670 に答える