5

Asp.Net MVC 中的“强类型视图数据”是什么意思?

谢谢

4

3 回答 3

3

ASP.NET MVC 中的强类型视图继承自System.Web.Mvc.ViewPage<T>并包含类型由 T 指定的模型属性。这允许智能感知在您的视图中工作。

于 2010-02-02T19:07:54.393 回答
2

每个视图都有一个Model属性。强类型视图意味着使其继承自 some ViewPage<T>,并且 Model 属性成为 T 的类型。如果您不强类型视图,则 Model 是“对象”类型。

强类型化视图模型的优势在于可以直接访问模型的属性。您将获得智能感知和编译器检查,而不是依赖于使用“魔术字符串”来访问 ViewData 字典——如果您的模型发生更改,它将在运行时中断。

例如,如果你有

public class Person
{
   public int Age { get; set; }
}

并且你在Person类上做了强类型的视图,你就可以Model.Age从你的视图模板中访问。如果您的 View 不是强类型的,那么Model您将无法访问任何属性,并且您必须将其显式转换为类型或通过 ViewData 字典传递您的数据。

要强类型化此视图,您只需使其继承自ViewPage<Person>.

于 2010-02-02T19:07:10.963 回答
1

假设您需要在视图上显示几条松散相关的数据:联系信息、销售预测和通话历史。您可以简单地将它们注入 ViewData 并将它们拉出并从视图中强类型化它们,但是更好的方法是创建一个自定义模型来封装其中的每一个。然后,您将在此自定义模型中强烈键入视图本身。除了可测试性等其他好处外,它还有助于类型安全并使代码辅助更加直观。

于 2010-02-02T19:08:35.520 回答