属性カスタムHTMLは、私がモデルを作成したいMVC3モデルで
@Html.DisplayForModel()
私が探している結果は、このようなものです:
<label>Test:</label> <input type="checkbox" data-test="this is a test!" />
私は既にカスタム属性クラスを作成しましたが、これは何も生成されませんでした。
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class MicrodataAttribute : Attribute
{
public string Data { get; set; }
public RouteValueDictionary GetAttributes()
{
var attributes = new RouteValueDictionary();
if (this.Data != null)
{
string[] kv = this.Data.Split(',');
attributes.Add(kv[0], kv[1]);
}
return attributes;
}
}
public class MetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
{
var metadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
var additionalValues = attributes.OfType<HtmlPropertiesAttribute>().FirstOrDefault();
if (additionalValues != null)
{
metadata.AdditionalValues.Add("HtmlAttributes", additionalValues);
}
return metadata;
}
}
私の属性を使用するコードがないと言ったとき、あなたは何を意味するのか分かりませんか? MVCでモデルを使用することのポイントは、データベースやビューなどのアプリケーションをモデル化することです。 これらのモデルは動的に作成され、同じものを表示します。また、カスタムHTML5データダッシュ属性を使用する必要があります。 –
@JasonFoglia - MVCフレームワークのコードでは、あなたの 'HtmlProperties'属性を使用していません。 –
html5データダッシュ属性を使用したデータ検証がある場合、これはどのように可能ですか?例:data-valデータ検証を操作する方法はありませんか? あなたがすでに知っているように、これをやる方法は多少あります。あなたは私にリンクを送った、別のhttp://ruijarimba.wordpress.com/2011/07/24/asp-net-mvc-add-html5-microdata-to-your-applications-using-metadata-providers/ –