如何做到这一点?
当然通过使用视图模型:
public class CountryViewModel
{
public int CountryId { get; set; }
public string CountryName { get; set; }
}
然后您将在应该呈现您的显示视图的控制器操作中填充此视图模型:
public ActionResult Display(int id)
{
Country country = ... go and fetch from your db the corresponding country from the id
// Now build a view model:
var model = new CountryViewModel();
model.CountryId = country.Id;
model.CountryName = country.Name;
// and pass the view model to the view for displaying purposes
return View(model);
}
现在您的视图将被强类型化到视图模型中:
@model CountryViewModel
@Html.DisplayFor(x => x.CountryName)
因此,正如您在 ASP.NET MVC 中看到的,您应该始终使用视图模型。考虑在给定视图中需要使用哪些信息,您应该做的第一件事是定义视图模型。然后,为视图提供服务的控制器操作负责填充视图模型。这个视图模型的值来自哪里并不重要。将视图模型视为许多数据源的单一聚合点。
就观点而言,它们应该尽可能地愚蠢。只需使用视图模型中可用的内容。