更新:
您可以为每个名为“Title”或“Hint”的对象创建一个新的类属性,并向它们添加适当的字符串值。然后使用 MyObject.Title 获取该属性
有趣的问题。我想看到使用属性的答案,但这里有两种我能想到的方法:
向您的对象添加扩展方法
这将需要大量重复的代码。
public static string GetTitle(this YourObject obj)
{
return "Title for object";
}
Html Helper 扩展方法
您将在此辅助方法中存储对象标题。
public static string GetObjectTitle(this HtmlHelper html, string type)
{
switch(type)
{
case "Object1":
return "Title for object 1";
break;
case "Object2":
return "Title for object 2";
break;
default:
return "No titled specified for this object type";
break;
}
}
要调用此方法:
<%= Html.GetObjectTitle(Model.GetType()) %>
或者在您的示例中:
<%= Html.TextBox("PostalCode", Model.PostalCode, new {
watermark = "Postal Code",
title = Html.GetObjectTitle(Model.GetType()) })%>
我更喜欢第二种方法,因为您可以存储所有标题,并且您需要编写更少的代码。
但是,我认为向类添加一个属性并创建一种获取该属性的方法会更好一些。