可以说,至少在需要时,更优雅的解决方案是使用强类型视图(使用模型 - 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
但是这样做,你会失去智能感知、可重复性 (DRY),可能还会失去理智。可能在一个地方使用一个属性(默认 _Layout 页面使用的一个 la )。 ViewBag.Title
一大堆不连贯的东西塞进包里,不,谢谢。