MVC 中 UIHint 属性的用途是什么。谁能给我一个简单的例子来说明如何使用它以及它的作用。
问问题
24862 次
2 回答
37
当使用 Display 或 Editor 模板时,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.ModelProperty) // if ModelProperty is of type MyViewModel
编辑
如果要在属性级别上指定它:
public class MyViewModel
{
[UIHint("Birthday")]
public DateTime DateOfBirth { get; set; }
}
您可以在 /Views/Shared 或 /Views/{Controller} 的 DisplayTemplates 或 EditorTemplates 文件夹中创建一个名为 Birthday 的显示/编辑器模板。那么当你这样做时:
@Html.DisplayFor(m => m.DateOfBirth)
或者
@Html.EditorFor(m => m.DateOfBirth)
它将使用 UIHint 中指定的模板
于 2011-11-09T19:05:19.897 回答
15
UIHint 只能用在属性上,不能用在 Dismissile 状态的类声明上。我正在使用 MVC3,所以这可能已经从 MVC2 改变了。
“属性‘UIHint’对此声明类型无效。它仅对‘属性、索引器、字段’声明有效”
于 2013-01-04T09:25:50.230 回答