一直试图找到使用razor为可空类型创建编辑器模板的方法。我在LinqToSQL类中具有Guid和Nullable类型的属性。当我在文件@model Guid?
的第一行使用Guid.cshtml
时,它总是将Guids视为Guid?类型。我想为Guid创建一个不同的编辑器模板,但文件名不接受?或者<或者>字符。
请帮忙。感谢。
答案 0 :(得分:6)
似乎对于可空值类型,目的是编写一个处理可空和非可空类型的显示/编辑器模板。以下是Brad Wilson post的摘录:
在搜索类型名称时,使用没有名称空间的简单名称(即Type.Name)。此外,如果类型为Nullable,我们搜索T(因此无论您使用的是“bool”还是“Nullable”,您都将获得布尔模板)。这意味着如果您正在为值类型编写模板,则需要考虑该值是否可为空。您可以使用ModelMetadata的IsNullableValueType属性来确定该值是否可为空。我们将在下面看到内置布尔模板的示例。
因此,您可以在模板中使用@model Guid?
并检查空值。
答案 1 :(得分:3)
我想我会发布这个答案:)
您是否尝试过@model Nullable<Guid>
而不是@model Guid
?