私はブラッドウィルソンの記事の1つを読んでいました:
ASP.NET MVC 2テンプレート、パート2:ModelMetadata
http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html
ASP.NET MVC 3アプリで、次のモデルがあると仮定します。
public class Contact {
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
そして、これが私の見解です:
@model MyApp.Models.Contact
<h2>Contact</h2>
@Html.EditorForModel()
パス内にContact.cshtml
ファイルがあり~/Views/Shared/EditorTemplates/
ます。
ModelMetadata
私の質問は、各モデルプロパティにどのように連絡できるかです。たとえば、次のようになります。
Contact.cshtml
@model MyApp.Models.Contact
<input type="text" placeholder="@Model.FirstName.GetItsMetaData().Watermark"
value="@Model.FirstName" />
注: GetItsMetaDataメソッドは、私が完全に作成したものです。プロパティのMedelMetadataにアクセスしようとしています。そのようにする必要はありません。
編集
私は別の同様の質問を見つけました:
asp.netmvcのeditortemplateの複合型のModelMetadata
そして答えはこれです:
@{
var metadata = ModelMetadata
.FromLambdaExpression<TestThing, string>(x => x.Test2, ViewData);
var watermak = metadata.Watermark;
}
しかし、私のモデルのすべてのプロパティに対してこれを行うのは非常に冗長ですよね?