Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC中的UIHint属性_Asp.net Mvc_Asp.net Mvc 2_Asp.net Mvc Uihint - Fatal编程技术网

Asp.net mvc MVC中的UIHint属性

Asp.net mvc MVC中的UIHint属性,asp.net-mvc,asp.net-mvc-2,asp.net-mvc-uihint,Asp.net Mvc,Asp.net Mvc 2,Asp.net Mvc Uihint,UIHint属性在MVC中的用途是什么。任何人都可以为我提供一个简单的示例,说明如何使用它以及它的作用。当使用显示或编辑器模板时,UIHint会告诉它要使用哪个模板: [UIHint("SomeTemplate")] public class MyViewModel { public string SomeProperty { get; set; } } 如果在Views/Shared/DisplayTemplates或Views/{Controller}/DisplayTempla

UIHint属性在MVC中的用途是什么。任何人都可以为我提供一个简单的示例,说明如何使用它以及它的作用。

当使用显示或编辑器模板时,UIHint会告诉它要使用哪个模板:

[UIHint("SomeTemplate")]
public class MyViewModel
{
     public string SomeProperty { get; set; }
}
如果在Views/Shared/DisplayTemplates或Views/{Controller}/DisplayTemplates中创建名为SomeTemplate.ascx的显示模板(因为您是MVC2),则在执行以下操作时,它将使用该模板:

@Html.DisplayForModel() // if Model is MyViewModel
@Html.DisplayFor(m => m.DateOfBirth)

编辑
如果要在属性级别上指定此项,请执行以下操作:

public class MyViewModel
{
    [UIHint("Birthday")]
    public DateTime DateOfBirth { get; set; }
}
您可以在/Views/Shared或/Views/{Controller}中的DisplayTemplates或EditorTemplates文件夹中创建名为Birthday的显示/编辑器模板。然后,当您这样做时:

@Html.DisplayForModel() // if Model is MyViewModel
@Html.DisplayFor(m => m.DateOfBirth)


它将使用UIHint中指定的模板。UIHint只能在属性上使用,而不能在类声明中作为解除许可状态使用。我使用的是MVC3,因此可能与MVC2有所不同


“属性'UIHint'在此声明类型上无效。它仅在'property,indexer,field'声明上有效”

谢谢您的回复,太好了!!但是如何在属性级别上指定..需要更清晰的表示吗?这正是我花了一个小时寻找的方法。为什么它们使查找此属性变得如此困难?不能在
类上使用,只能在属性和字段上使用。您的示例
[UIHint(“SomeTemplate”)]
引发编译器错误“属性“UIHint”在此声明类型上无效。它仅在“property,indexer,field”声明上有效。”