如何在Razor中为Nullable <T>创建编辑器模板

Ace*_*ark 6 razor asp.net-mvc-3

一直试图找到使用剃刀为可空类型创建编辑器模板的方法.我在LinqToSQL类中具有Guid和Nullable类型的属性.当我@model Guid?在文件的第一行使用时Guid.cshtml,它总是将Guids视为Guid?类型.我想为Guid创建一个不同的编辑器模板,但文件名不接受?或<或>字符.

请帮忙.谢谢.

Der*_*son 6

似乎对于可空值的类型,目的是编写一个处理可空和非可空类型的显示/编辑器模板.这是Brad Wilson 发表的一篇文章的摘录:

搜索类型名称时,使用简单名称(即Type.Name)而不使用名称空间.此外,如果类型为Nullable,我们搜索T(因此无论您使用的是"bool"还是"Nullable",您都将获得布尔模板).这意味着如果您正在为值类型编写模板,则需要考虑该值是否可为空.您可以使用ModelMetadata的IsNullableValueType属性来确定该值是否可为空.我们将在下面看到内置布尔模板的示例.

因此,您将@model Guid?在模板中使用并检查空值.


Bui*_*ted 3

我想我会把这个作为答案发布:)

你尝试@model Nullable<Guid>过吗@model Guid