間違いなく、より洗練された解決策は、少なくとも必要な場合は、強く型付けされたビュー (モデル - MVC の M) を使用することです。簡単な例は次のとおりです。
モデル:
public class MessageViewModel
{
public string Message {get; set;}
}
コントローラー:
public ActionResult Index()
{
var viewModel = new MessageViewModel {Message = "Hello from far away"};
return View(viewModel);
}
景色:
@model MyNamespace.MessageViewModel
<h2>@Html.DisplayFor(model => model.Message)</h2>
ページ上の単一のメッセージに対してこれを気にしますか? 驚いたことに、ほとんどの場合、そうします。ビューには、何を期待するか (およびその逆) を正確に把握している点、Intellisense のサポート、およびあらゆる種類の暗黙的な書式設定を実行できるHtmlHelper
'sメソッドについてエレガントな点があります。DisplayFor()
そうは言っても、「最も簡単な」(読み: 素早く汚いが、醜い速さになる) 解決策は、メッセージをViewBag
動的オブジェクトに詰め込むことです。
コントローラーで:
ViewBag.MyMessage = "Hello from a far away place";
ビューで:
@ViewBag.MyMessage
しかし、これを行うと、Intellisense、再現性 (DRY)、そしておそらく正気を失います。おそらく、1 つの場所で使用される 1 つのプロパティ (デフォルトの_Layout ViewBag.Title
ページが使用するもの)。切断されたオブジェクトがバッグに詰め込まれています。ありがとうございます。